1.5 相较 1.4 的变化
不再支持 spring-erlang
spring-erlang jar 不再包含在发行版中。请改用 RabbitMQ REST API。
CachingConnectionFactory 更改
控制容器队列声明行为的属性
当监听器容器消费者启动时,它们会尝试被动声明队列以确保它们在代理上可用。以前,如果这些声明失败(例如,因为队列不存在)或当 HA 队列正在移动时,重试逻辑固定为三次重试,间隔为五秒。如果队列仍然不存在,则行为由 missingQueuesFatal 属性控制(默认值:true)。此外,对于配置为从多个队列监听的容器,如果只有部分队列可用,则消费者会以固定的 60 秒间隔重试缺失的队列。
declarationRetries、failedDeclarationRetryInterval 和 retryDeclarationInterval 属性现在可配置。有关更多信息,请参阅 消息监听器容器配置。
DefaultMessagePropertiesConverter 更改
您现在可以配置 DefaultMessagePropertiesConverter 来确定转换为 String 而不是 DataInputStream 的 LongString 的最大长度。转换器有一个替代构造函数,它将该值作为限制。以前,此限制硬编码为 1024 字节。(在 1.4.4 中也可用)。
@RabbitListener 改进
自动交换、队列和绑定声明
您现在可以声明定义这些实体集合的 bean,RabbitAdmin 会在建立连接时将内容添加到它声明的实体列表中。有关更多信息,请参阅 声明交换、队列和绑定集合。
RabbitTemplate 更改
添加 reply-address
reply-address 属性已添加到 <rabbit-template> 组件中,作为 reply-queue 的替代。有关更多信息,请参阅 请求/回复消息。(在 1.4.4 中也可用作 RabbitTemplate 上的 setter)。
阻塞 receive 方法
RabbitTemplate 现在支持 receive 和 convertAndReceive 方法中的阻塞。有关更多信息,请参阅 轮询消费者。
sendAndReceive 方法的强制性
当使用 sendAndReceive 和 convertSendAndReceive 方法时,如果请求消息无法送达,则调用线程会抛出 AmqpMessageReturnedException。有关更多信息,请参阅 回复超时。
添加 RabbitManagementTemplate
引入了 RabbitManagementTemplate,用于通过其 管理插件 提供的 REST API 监视和配置 RabbitMQ 代理。有关更多信息,请参阅 RabbitMQ REST API。
监听器容器 Bean 名称 (XML)
|
正常的 Spring bean 名称覆盖将适用。如果稍后解析的 迁移到此版本时,如果您在 |
然而,为了支持将容器作为一组启动和停止,添加了一个新的 group 属性。当定义此属性时,由此元素创建的容器将添加到名称为此的 bean 中,类型为 Collection<SimpleMessageListenerContainer>。您可以遍历此组以启动和停止容器。
类级别 @RabbitListener
@RabbitListener 注解现在可以应用于类级别。与新的 @RabbitHandler 方法注解一起,这允许您根据有效负载类型选择处理程序方法。有关更多信息,请参阅 多方法监听器。
SimpleMessageListenerContainer:回退支持
SimpleMessageListenerContainer 现在可以提供一个 BackOff 实例,用于消费者启动恢复。有关更多信息,请参阅 消息监听器容器配置。
通道关闭日志记录
引入了一种控制通道关闭日志级别的新机制。请参阅 日志通道关闭事件。
应用程序事件
当消费者失败时,SimpleMessageListenerContainer 现在会发出应用程序事件。有关更多信息,请参阅 消费者事件。
消费者标签配置
以前,异步消费者的消费者标签由代理生成。在此版本中,现在可以向监听器容器提供命名策略。请参阅 消费者标签。
匿名队列命名
从 1.5.3 版本开始,您现在可以控制 AnonymousQueue 名称的生成方式。有关更多信息,请参阅 AnonymousQueue。