3.0 相较于 2.4 的变更
观测
现在支持使用 Micrometer 启用计时器和跟踪的观测。有关更多信息,请参阅 Micrometer 观测。
原生镜像
提供了创建原生镜像的支持。有关更多信息,请参阅 原生镜像。
AsyncRabbitTemplate
AsyncRabbitTemplate 现在返回 CompletableFuture 而不是 ListenableFuture 。有关更多信息,请参阅 异步 Rabbit 模板。 |
Stream 支持变更
RabbitStreamOperations 和 RabbitStreamTemplate 方法现在返回 CompletableFuture 而不是 ListenableFuture 。 |
现在支持超级流及其上的单个活动消费者。
有关更多信息,请参阅 使用 RabbitMQ Stream 插件。
@RabbitListener
变更
批量监听器现在可以消费 Collection<?>
以及 List<?>
。批量消息适配器现在确保方法适合消费批次。当将容器工厂的 consumerBatchEnabled
设置为 true
时,batchListener
属性也会被设置为 true
。有关更多信息,请参阅 @RabbitListener 与批量处理。
MessageConverter
现在可以为 null 值返回 Optional.empty()
;这目前由 Jackson2JsonMessageConverter
实现。有关更多信息,请参阅 从 Message
转换。
您现在可以通过容器工厂配置 ReplyPostProcessor
,而不是通过 @RabbitListener
上的属性配置。有关更多信息,请参阅 回复管理。
@RabbitListener
(和 @RabbitHandler
)方法现在可以声明为 Kotlin 的 suspend
函数。有关更多信息,请参阅 异步 @RabbitListener
返回类型。
从 3.0.5 版本开始,具有异步返回类型的监听器(包括 Kotlin suspend 函数)在发生故障后会调用 RabbitListenerErrorHandler
(如果已配置)。以前,错误处理程序仅在同步调用时被调用。
连接工厂变更
AbstractConnectionFactory
中的默认 addressShuffleMode
现在为 RANDOM
。这会导致在提供多个地址时连接到随机主机。有关更多信息,请参阅 连接到集群。
LocalizedQueueConnectionFactory
不再使用RabbitMQ的http-client
库来确定哪个节点是队列的领导者。更多信息请参见队列亲和性和LocalizedQueueConnectionFactory
。