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