12//设置消息发送ack,默认noneconnectionFactory.setPublisherConfirmType(CachingConnectionFactory.ConfirmType.CORRELATED);
其实使用Spring-amqp确实简单,其主要就一些jar包,比如spring-amqp,spring-rabbit等。 我们如果要发送一条消息,都是转成字节数组的,类似这样 channel.basicPublish("", QUEUE_NAME, null, "hello world".getBytes()); 但是在spring-amqp 在spring-amqp中,就针对Exchange单独定义了一个接口Exchange。 ? 与上面提到的Exchange类似,Spring-amqp中也是通过一个类Queue来定义了队列。 ? 我们应该还记得在原生的RabbitMQ中,Fanout模式下是如何绑定Exchange和Queue的 channel.queueBind(queueName, EXCHANGE_NAME, ""); 在Spring-amqp
(2)spring-amqp在处理RabbitMQ消息时,会根据contentType选择不同的 MessageConverter来执行解码操作。 (3)spring-amqp的消息解码组件MessagingMessageListenerAdapter有一个可以处理contentType为text/plain、text/xml等的Message。 (4)spring-amqp在发送String类型的消息时,默认的contentType是text/plain。 小提示:spring-amqp的版本号 如此说来以前,之前监听消息的contentType可能是默认的text/plain 这样的话,还不能按搜到的方案改。 但异常没有复现 原来spring-amqp自5.1.2开始已经对这个点进行了优化,即不需要配置额外的MessageConverter,原因在之后的resolveArgument环节,匹配到了RabbitListenerAnnotationBeanPostProcessor
Spring AMQP的页面:http://spring.io/projects/spring-amqp ? 注意这里一段描述: ? Spring-amqp是对AMQP协议的抽象实现,而spring-rabbit 是对协议的具体实现,也是目前的唯一实现。底层使用的就是RabbitMQ。
恢复到 Spring-AMQP 2.2.7 使它再次工作,并且对象确实是Foo。 所以只需要将 spring-amqp 升级到 2.2.13.RELEASE 或以上。或者升级SpringBoot版本到2.3.7.RELEASE。
NON_DURABLE, false, false, args); 请参考 GitHub 中的代码: https://github.com/cwiki-us-demo/tutorials/blob/master/spring-amqp
NON_DURABLE, false, false, args); 请参考 GitHub 中的代码: https://github.com/cwiki-us-demo/tutorials/blob/master/spring-amqp
Spring AMQP Spring AMQP包括两个模块:spring-amqp和spring-rabbit。 Maven 依赖 为了将spring-amqp和spring-rabbit模块添加到我们的项目中,我们将spring-boot-starter-amqp依赖项添加到我们的pom.xml: <dependencies
System.out.println("在这里处理消费你的日志信息" + logMessage); } 更多spring amqp的应用,请参考spring amqp官方参考文档:http://docs.spring.io/spring-amqp
Exchange:广播 Direct Exchange:路由 Topic Exchange:主题 SpringAMQP SpringAmqp的官方地址:https://spring.io/projects/spring-amqp 包含两部分,其中spring-amqp是基础抽象,spring-rabbit是底层的默认实现。
从spring-amqp 2.0版开始,默认的prefetch值是250,这将使消费者在大多数常见场景中保持忙碌,从而提高吞吐量。
该项目由两部分组成;spring-amqp 是基础抽象,spring-rabbit 是 RabbitMQ 实现。 github.com/vir56k/java_demo/tree/master/rabbitmq_demo2 5.参考: Spring AMQP 文档 https://spring.io/projects/spring-amqp
String message, Long delaySecond) { /*** * 方法参数说明 * https://docs.spring.io/spring-amqp
它的官方文档<https://docs.spring.io/spring-amqp/docs/2.1.8.RELEASE/api/> 其中前往提到的序列化问题就可以配置这个工厂bean来解决: @Bean
参考链接 RabbitMQ 官方文档:https://www.rabbitmq.com/documentation.html Spring AMQP 文档:https://docs.spring.io/spring-amqp
/dependency> spring的依赖 <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-amqp
Spring Boot整合RabbitMQ 简介 在Spring项目中,可以使用Spring-Rabbit去操作RabbitMQ https://github.com/spring-projects/spring-amqp
本文基于最新rabbitmq:3.8.5版本,实现了direct、fanout、topic等几种主要消息模式,并基于spring-amqp完整实现了常见消息案例,同时也通过插件方式,实现了延迟消息的处理 /master/hiboot/src/main/java/pers/techlmm/rabbit 更多参考资料: springamqp官方资料 https://spring.io/projects/spring-amqp https://github.com/rabbitmq/rabbitmq-delayed-message-exchange springamqp api文档 https://docs.spring.io/spring-amqp
演示源码下载链接:https://github.com/JMCuixy/SpringMessageRabbitMQ 参考资料:《Spring 实战第四版》 Spring-amqp文档
Spring-amqp项目拥有所有必要的通用接口(例如AmqpTemplate)和API类,而具体的实现则依赖spring-rabbitmq,Spring-rabbitmq依赖于RabbitMQ amqp-client 客户端应用程序仅依靠spring-amqp来实现松耦合。能够从一个AMQP代理切换到另一个AMQP代理,而不会在代码中进行任何重大更改。