2.3 相较于 2.2 的变化

本节描述了 2.2 版本和 2.3 版本之间的变化。 有关以前版本的变化,请参阅 变更历史

连接工厂的变化

现在提供了两个额外的连接工厂。 有关更多信息,请参阅 选择连接工厂

@RabbitListener 的变化

现在可以指定回复内容类型。 有关更多信息,请参阅 回复内容类型

消息转换器的变化

如果 ObjectMapper 配置了自定义反序列化器,Jackson2JMessageConverter 可以反序列化抽象类(包括接口)。 有关更多信息,请参阅 反序列化抽象类

测试的变化

提供了一个新的注解 @SpringRabbitTest,用于在不使用 SpringBootTest 时自动配置一些基础设施 bean。 有关更多信息,请参阅 @SpringRabbitTest

RabbitTemplate 的变化

模板的 ReturnCallback 已重构为 ReturnsCallback,以便在 lambda 表达式中更简单地使用。 有关更多信息,请参阅 关联的发布者确认和返回

当使用返回和关联确认时,CorrelationData 现在需要一个唯一的 id 属性。 有关更多信息,请参阅 关联的发布者确认和返回

当使用直接回复时,现在可以配置模板,以便服务器不需要返回带有回复的关联数据。 有关更多信息,请参阅 RabbitMQ 直接回复

监听器容器的变化

现在提供了一个新的监听器容器属性 consumeDelay;它在使用 {rabbitmq-server-github}/rabbitmq_sharding[RabbitMQ Sharding 插件] 时很有用。

默认的 JavaLangErrorHandler 现在调用 System.exit(99)。 要恢复到以前的行为(不执行任何操作),请添加一个无操作处理程序。

容器现在支持 globalQos 属性,以将 prefetchCount 全局应用于通道,而不是应用于通道上的每个消费者。

有关更多信息,请参阅 消息监听器容器配置

MessagePostProcessor 的变化

压缩 MessagePostProcessor 现在使用逗号而不是冒号来分隔多个内容编码。 解压缩器可以处理两种格式,但是,如果使用此版本生成的消息由早于 2.2.12 的版本消费,则应配置压缩器以使用旧的分隔符。 有关更多信息,请参阅 修改消息 - 压缩及更多 中的重要说明。

多 Broker 支持的改进

有关更多信息,请参阅 多 Broker(或集群)支持

RepublishMessageRecoverer 的变化

现在提供此恢复器的一个新子类,它支持发布者确认。 有关更多信息,请参阅 消息监听器和异步情况