此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 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 模板
以前,当这些方法与固定回复队列一起使用时,两个自定义标头用于关联数据以及保留和恢复回复队列信息。
在此版本中,默认使用标准 message 属性 (),但您可以指定要改用的自定义属性。
此外,嵌套信息现在保留在模板内部,而不是使用自定义标头。…sendAndReceive()
correlationId
replyTo
该属性已弃用。
使用 RabbitMQ 3.0.x 或更高版本时,不得设置此属性。immediate
自动声明队列和其他项目
以前,在声明 queues、exchanges 和 bindings 时,您无法定义用于声明的连接工厂。
每个 Worker 都使用其连接声明所有组件。RabbitAdmin
从此版本开始,您现在可以将声明限制为特定实例。
请参见 条件声明。RabbitAdmin
AMQP 远程处理
现在提供了使用 Spring 远程技术的工具,使用 AMQP 作为 RPC 调用的传输。 有关更多信息,请参见使用 AMQP 进行 Spring 远程处理。
请求的心跳
一些用户要求在 Spring AMQP 上公开底层客户端连接工厂的属性。
此功能现已推出。
以前,有必要将 AMQP 客户端工厂配置为单独的 bean,并在 .requestedHeartBeats
CachingConnectionFactory
CachingConnectionFactory