Changes in 3.0 Since 2.4
-
弃用远程功能
-
集成 Micrometer 观察
-
支持创建本机图像
-
将 AsyncRabbitTemplate 升级为返回 CompletableFuture
-
增强 RabbitMQ 流支持
-
扩展 @RabbitListener 批量侦听能力
-
通过 MessageConverter 支持 null 值
-
通过容器工厂配置 ReplyPostProcessor
-
支持 Kotlin 协程 @RabbitListener 方法
-
故障后为异步侦听器调用 RabbitListenerErrorHandler
-
调整 AbstractConnectionFactory 中的默认 addressShuffleMode 为 RANDOM
Observation
现在支持使用 Micrometer 启用计时器和跟踪的观察。有关更多信息,请参见 Micrometer Observation。
Native Images
提供了创建原生映像的支持。有关更多信息,请参见 Native Images。
@RabbitListener
Changes
批量监听器现在可以消耗 Collection<?>`和 `List<?>
。批量消息适配器现在可确保该方法适合于消耗批量。将容器工厂 consumerBatchEnabled`设置为 `true`时,`batchListener`属性也会设置为 `true
。有关更多信息,请参阅 @RabbitListener with Batching。
MessageConverter`现在可以为 null 值返回 `Optional.empty()
;此操作目前由 Jackson2JsonMessageConverter`实现。有关更多信息,请参见 Converting from a `Message
。
现在可以通过容器工厂配置 ReplyPostProcessor
,而不是通过 `@RabbitListener`中的属性配置。有关更多信息,请参阅 Reply Management。
@RabbitListener
(和 @RabbitHandler
)的方法现在可以被声明为 Kotlin suspend`函数。有关更多信息,请参阅 Asynchronous `@RabbitListener
Return Types。
从版本 3.0.5 开始,具有异步返回类型(包括 Kotlin 挂起函数)的侦听器将在发生故障后调用 RabbitListenerErrorHandler
(如果已配置)。以前,错误处理程序仅与同步调用一起调用。
Connection Factory Changes
现在,AbstractConnectionFactory`中 `addressShuffleMode`的默认值为 `RANDOM
。当提供多个地址时,这会导致连接到随机主机。有关更多信息,请参见 Connecting to a Cluster。
LocalizedQueueConnectionFactory`不再使用 RabbitMQ `http-client`库来确定哪个节点是队列的领导者。有关更多信息,请参见 Queue Affinity and the `LocalizedQueueConnectionFactory
。