跳到主要内容

3.0 版本相对于 2.4 版本的变更

DeepSeek V3 中英对照 Changes in 3.0 Since 2.4

Java 17, Spring Framework 6.0

此版本需要 Spring Framework 6.0 和 Java 17

远程调用

远程功能(使用 RMI)不再受支持。

观察

现在支持使用 Micrometer 启用计时器和追踪的观察功能。有关更多信息,请参阅 Micrometer 观察

原生镜像

提供了创建原生镜像的支持。有关更多信息,请参阅原生镜像

AsyncRabbitTemplate

important

AsyncRabbitTemplate 现在返回 CompletableFuture 而不是 ListenableFuture。更多信息请参见 异步 Rabbit 模板

流支持变更

important

RabbitStreamOperationsRabbitStreamTemplate 方法现在返回 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