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