此版本仍在开发中,目前尚不稳定。如需最新稳定版本,请使用 Spring AMQP 4.0.2spring-doc.cadn.net.cn

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

Java 17, Spring Framework 6.0

此版本需要 Spring Framework 6.0 和 Java 17spring-doc.cadn.net.cn

远程调用

远程调用功能(使用 RMI)已不再支持。spring-doc.cadn.net.cn

观察

现在支持使用 Micrometer 启用计时器和跟踪的观察功能。 有关更多信息,请参阅 Micrometer 观察spring-doc.cadn.net.cn

原生镜像

支持创建原生映像。
请参阅 原生映像 了解更多信息。spring-doc.cadn.net.cn

异步 Rabbit 模板

现在 AsyncRabbitTemplate 返回 CompletableFuture,而不是 ListenableFuture异步 Rabbit 模板 以获取更多信息。

流支持变更

RabbitStreamOperationsRabbitStreamTemplate 方法现在返回 CompletableFuture,而不是 ListenableFuture

现在支持超级流以及其上的单个活跃消费者。spring-doc.cadn.net.cn

请参阅 使用 RabbitMQ 流插件 以获取更多信息。spring-doc.cadn.net.cn

@RabbitListener变更

批处理监听器现在可以消费 Collection<?> 以及 List<?>
批处理消息适配器现在确保该方法适合用于批处理消费。
当将容器工厂 consumerBatchEnabled 设置为 true 时,batchListener 属性也会被设置为 true
有关更多信息,请参阅 @RabbitListener 支持批处理spring-doc.cadn.net.cn

MessageConverter 可以返回 Optional.empty() 表示空值;当前由 Jackson2JsonMessageConverter 实现此功能。
有关更多信息,请参见 Message 转换spring-doc.cadn.net.cn

现在,您可以通过容器工厂而非 @RabbitListener 上的属性来配置 ReplyPostProcessor。有关更多信息,请参阅 回复管理spring-doc.cadn.net.cn

方法 @RabbitListener(以及 @RabbitHandler)现在可以声明为 Kotlin suspend 函数。
有关更多信息,请参阅 异步 @RabbitListener 返回类型spring-doc.cadn.net.cn

从版本 3.0.5 开始,具有异步返回类型(包括 Kotlin 悬挂函数)的监听器在发生失败后会调用 RabbitListenerErrorHandler(如果已配置)。spring-doc.cadn.net.cn

连接工厂变更

默认的 addressShuffleModeAbstractConnectionFactory 中现在是 RANDOM
当提供多个地址时,这会导致连接到随机主机。
有关更多信息,请参阅 连接到集群spring-doc.cadn.net.cn

LocalizedQueueConnectionFactory 不再使用 RabbitMQ http-client 库来确定哪个节点是队列的领导者。队列亲和性与 LocalizedQueueConnectionFactory 以获取更多信息。spring-doc.cadn.net.cn