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。