3.0 相较于 2.4 的变化
观测
现在支持使用 Micrometer 为计时器和跟踪启用观测。 有关更多信息,请参阅 Micrometer 观测。
原生镜像
提供了创建原生镜像的支持。 有关更多信息,请参阅 原生镜像。
AsyncRabbitTemplate
AsyncRabbitTemplate 现在返回 CompletableFuture 而不是 ListenableFuture。
有关更多信息,请参阅 异步 Rabbit 模板。
流支持变化
RabbitStreamOperations 和 RabbitStreamTemplate 方法现在返回 CompletableFuture 而不是 ListenableFuture。
现在支持超级流及其上的单个活动消费者。
有关更多信息,请参阅 使用 RabbitMQ 流插件。
@RabbitListener 变化
批处理监听器现在可以消费 Collection<?> 以及 List<?>。
批处理消息适配器现在确保该方法适合消费批处理。
当将容器工厂的 consumerBatchEnabled 设置为 true 时,batchListener 属性也设置为 true。
有关更多信息,请参阅 带有批处理的 @RabbitListener。
MessageConverter 现在可以为 null 值返回 Optional.empty();这目前由 Jackson2JsonMessageConverter 实现。
有关更多信息,请参阅 从 Message 转换。
现在可以通过容器工厂而不是通过 @RabbitListener 上的属性配置 ReplyPostProcessor。
有关更多信息,请参阅 回复管理。
@RabbitListener(和 @RabbitHandler)方法现在可以声明为 Kotlin suspend 函数。
有关更多信息,请参阅 异步 @RabbitListener 返回类型。
从 3.0.5 版本开始,具有异步返回类型(包括 Kotlin suspend 函数)的监听器在失败后会调用 RabbitListenerErrorHandler(如果已配置)。
此前,错误处理器仅在同步调用时被调用。
连接工厂变化
AbstractConnectionFactory 中的默认 addressShuffleMode 现在是 RANDOM。
这导致在提供多个地址时连接到随机主机。
有关更多信息,请参阅 连接到集群。
LocalizedQueueConnectionFactory 不再使用 RabbitMQ http-client 库来确定哪个节点是队列的领导者。
有关更多信息,请参阅 队列亲和性与 LocalizedQueueConnectionFactory。