此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring AMQP 3.2.6! |
自 1.1 以来对 1.2 的更改
RabbitMQ 版本
Spring AMQP 现在默认使用 RabbitMQ 3.1.x(但保留与早期版本的兼容性)。RabbitMQ 3.1.x 不再支持的功能添加了某些弃用——联合交换和immediate
属性RabbitTemplate
.
兔子管理员
RabbitAdmin
现在提供了一个选项,用于让交换、队列和绑定声明在声明失败时继续。以前,所有声明都会在失败时停止。通过设置ignore-declaration-exceptions
,则此类异常将被记录(在WARN
级别),但进一步的声明继续进行。这可能有用的一个示例是,当队列声明由于略有不同的ttl
设置,通常会阻止其他声明继续进行。
RabbitAdmin
现在提供了一个名为getQueueProperties()
. 您可以使用此来确定代理上是否存在队列(返回null
对于不存在的队列)。此外,它还返回队列中的当前消息数以及当前使用者数。
兔子模板
以前,当…sendAndReceive()
方法与固定应答队列一起使用,两个自定义标头用于关联数据以及保留和恢复应答队列信息。在此版本中,标准消息属性 (correlationId
) 默认使用,但您可以指定要改用的自定义属性。此外,嵌套replyTo
信息现在保留在模板内部,而不是使用自定义标题。
这immediate
属性已弃用。使用 RabbitMQ 3.0.x 或更高版本时,不得设置此属性。
队列和其他项目的自动声明
以前,在声明队列、交换和绑定时,无法定义用于声明的连接工厂。 每RabbitAdmin
使用其连接声明所有组件。
从此版本开始,您现在可以将声明限制为特定的RabbitAdmin
实例。 请参阅条件声明。
AMQP 远程处理
现在提供了使用 Spring 远程处理技术的工具,使用 AMQP 作为 RPC 调用的传输。有关详细信息,请参阅使用 AMQP 进行 Spring 远程处理。
请求的心跳
一些用户要求提供底层客户端连接工厂的requestedHeartBeats
要在 Spring AMQP 上公开的属性CachingConnectionFactory
. 现在可用。以前,需要将 AMQP 客户端工厂配置为单独的 bean,并在CachingConnectionFactory
.