3.0 相较于 2.4 的变化
观测
现在支持使用 Micrometer 启用计时器和跟踪的观测功能。更多信息请参见 Micrometer 观测。
Native Images
提供了创建 Native Images 的支持。更多信息请参见 Native Images。
AsyncRabbitTemplate
AsyncRabbitTemplate 现在返回 CompletableFuture 而不是 ListenableFuture 。更多信息请参见 Async Rabbit Template。 |
Stream 支持的变化
RabbitStreamOperations 和 RabbitStreamTemplate 方法现在返回 CompletableFuture 而不是 ListenableFuture 。 |
现在支持超级流 (super streams) 和其上的单一活跃消费者 (single active consumers)。
更多信息请参见 使用 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
库来确定哪个节点是队列的 leader。更多信息请参见 队列亲和性 (Queue Affinity) 和 LocalizedQueueConnectionFactory
。