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