跳到主要内容
版本:4.1.1

3.0 自 2.4 以来的变更

Doubao 中英对照 Changes in 3.0 Since 2.4

Java 17、Spring Framework 6.0​

本版本需要 Spring Framework 6.0 和 Java 17

远程调用​

不再支持远程调用特性(使用 RMI)。

观测​

现在支持使用 Micrometer 为 timer 和链路追踪启用观测。更多信息参见Micrometer 观测。

原生镜像​

提供对创建原生镜像的支持。更多信息参见原生镜像。

AsyncRabbitTemplate​

important

AsyncRabbitTemplate 现在返回 CompletableFuture 而非 ListenableFuture。更多信息参见Async Rabbit Template。

Stream 支持变更​

important

RabbitStreamOperations 和 RabbitStreamTemplate 方法现在返回 CompletableFuture 而非 ListenableFuture。

现在支持超级流(super stream)及其上的单 active consumer。

更多信息参见使用 RabbitMQ Stream Plugin。

@RabbitListener 变更​

批次监听器现在既可以消费 List<?> 也可以消费 Collection<?>。批次消息适配器现在会确保方法适合消费批次。将容器工厂的 consumerBatchEnabled 设为 true 时,batchListener 属性也会被设为 true。更多信息参见带批处理的 @RabbitListener。

对于 null 值,MessageConverter 现在可以返回 Optional.empty();这目前由 Jackson2JsonMessageConverter 实现。更多信息参见从消息转换

现在可以通过容器工厂配置 ReplyPostProcessor,而不必通过 @RabbitListener 上的属性。更多信息参见回复管理。

@RabbitListener(和 @RabbitHandler)方法现在可以声明为 Kotlin suspend 函数。更多信息参见异步 @RabbitListener 返回类型。

从 3.0.5 版本开始,具有异步返回类型的 listener(包括 Kotlin suspend 函数)在失败后会调用 RabbitListenerErrorHandler(如果配置了)。此前,错误处理程序仅在同步调用时被调用。

连接工厂变更​

AbstractConnectionFactory 中默认的 addressShuffleMode 现在为 RANDOM。提供多个地址时,这会连接到随机的 host。更多信息参见连接到集群。

LocalizedQueueConnectionFactory 不再使用 RabbitMQ http-client 库来确定某个队列的 leader 节点。更多信息参见队列亲和性与 LocalizedQueueConnectionFactory。