|
该版本仍在开发中,尚未被视为稳定。请使用最新的稳定版本,使用 Spring AMQP 4.0.0! |
2.1版本自2.0以来的变化
AMQP 客户端库
Spring AMQP 现在使用 5.4.x 版本AMQP-client由RabbitMQ团队提供的库。
该客户端默认设置了自动恢复功能。
参见RabbitMQ自动连接/拓扑恢复。
从4.0版本起,客户端默认启用自动恢复。
虽然兼容此功能,但 Spring AMQP 有自己的恢复机制,客户端恢复功能通常不需要。
我们建议关闭AMQP-client自动恢复,以避免获得自动恢复连接非当前开放异常代理可用但连接尚未恢复的情况。
从 1.7.1 版本开始,Spring AMQP 会禁用它,除非你明确创建自己的 RabbitMQ 连接工厂并提供给缓存连接工厂.
兔子MQ连接工厂由兔子连接工厂豆另外,默认关闭这个选项。 |
包装变更
有些课程已经转到不同的套餐了。
大多数是内部类,不影响用户应用程序。
有两个例外频道意识信息听众和兔子听众错误处理者.
这些接口现在已经org.springframework.amqp.rabbit.listener.api.
出版商确认变更
启用用于发布者确认的通道在有未完成确认时不会返回缓存。 更多信息请参见相关出版商确认与回报。
听众集装箱工厂改进
你现在可以使用监听器容器工厂来创建任何监听器容器,而不仅仅是用于@RabbitListener注释或@RabbitListenerEndpointRegistry.
更多信息请参见“使用集装箱工厂”。
频道意识信息听众现在继承了消息监听器.
经纪事件监听器
一个BrokerEventListener引入以发布选定经纪人事件,作为ApplicationEvent实例。
更多信息请参见经纪事件监听器。
RabbitAdmin 变更
这兔子管理员发现了可申报者(这是一个容器可宣告 - 队列,交换和捆绑对象)并在代理上声明所包含的对象。
用户被劝阻使用旧的声明机制<收藏<队列>>(以及其他)并且应该使用可申报者改用豆子。
默认情况下,旧机制被禁用。
更多信息请参见“声明交换、队列和绑定的集合”。
匿名队列实例现在声明为x-队列-主定位器设置为客户端-本地默认情况下,为了确保队列是在应用程序连接的节点上创建的。
更多信息请参见配置经纪人。
RabbitTemplate 变更
你现在可以配置兔子模板其中noLocalReplyConsumer控制 a 的选项无本地回复消费者的标志发送与接收()操作。
更多信息请参见请求/回复消息。
相关数据对于出版商来说,确认现在已经有了可听未来你可以用它来获得确认,而不是使用回调。
当启用返回和确认时,相关数据(如提供)会被填充返回消息。
更多信息请参见相关出版商确认与回报。
一种称为回复TimedOut现在提供通知子类回复超时的机制,允许进行状态清理。
更多信息请参见回复超时。
你现在可以指定一个错误处理程序在使用请求/回复时调用DirectReplyToMessageListenerContainer(默认)当回复发出时出现例外(例如,迟到回复)。
看setReplyErrorHandler在兔子模板.
(同样自2.0.11起)
消息转换
我们引入了新的Jackson2Xml消息转换器支持从XML格式转换消息。
看Jackson2Xml消息转换器更多信息请见。
管理REST API
这RabbitManagement模板现已被直接com.rabbitmq.http.client.Client(或com.rabbitmq.http.client.ReactorNettyClient)使用。
更多信息请参见RabbitMQ REST API。
@RabbitListener变化
监听器容器工厂现在可以配置为重试模板以及可选的恢复回调回复时使用。
更多信息请参见启用监听器端点注释。
异步@RabbitListener返回
@RabbitListener方法现在可以返回ListenableFuture<?>或单核细胞增多症<?>. 看异步@RabbitListener返回类型更多信息请见。
连接工厂豆变更
默认情况下,兔子连接工厂豆现在来电enableHostnameVerification().
要恢复到之前的行为,请设置enableHostnameVerification属性到false.
连接工厂变更
这缓存连接工厂现在无条件禁用了底层RabbitMQ中的自动恢复功能连接工厂,即使构造子中提供了预配置实例。
虽然已采取措施使春季AMQP兼容自动恢复,但某些角落情况仍存在问题。
Spring AMQP 自 1.0.0 版本起就拥有自己的恢复机制,无需使用客户端提供的恢复机制。
虽然仍然可以启用该功能(使用cachingConnectionFactory.getRabbitConnectionFactory() .setAutomaticRecoveryEnabled())缓存连接工厂如果是被构造出来的,我们强烈建议你不要这样做。
我们建议您使用单独的RabbitMQ连接工厂如果你需要直接使用客户端出厂设置时自动恢复连接(而不是用Spring AMQP组件)。
监听器容器变更
默认条件拒绝错误处理现在完全丢弃导致致命错误的消息,如果X-死亡标题已存在。
更多信息请参见例外处理。
立即重新排队
一个新的ImmediateRequeueAmqpException引入以通知监听器容器消息需要重新排队。
要使用这个功能,一个新的ImmediateRequeueMessageRecoveryer实现功能已添加。
更多信息请参见“消息监听者与异步案例”。