|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring AMQP 3.2.0! |
自 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.