1.3 版本以来相对于 1.2 版本的变更
监听器并发性
监听器容器现在支持基于工作负载动态调整消费者数量,或者您可以在不停止容器的情况下通过编程方式更改并发性。详见 监听器并发性。
监听器队列
监听器容器现在允许在运行时修改其监听的队列。此外,如果至少有一个配置的队列可用,容器现在就可以启动。详见 监听器容器队列
此监听器容器现在在启动期间重新声明任何 auto-delete 队列。详见 auto-delete
队列。
消费者优先级
监听器容器现在支持消费者参数,允许设置 x-priority
参数。详见 消费者优先级。
独占消费者
您现在可以将 SimpleMessageListenerContainer
配置为单个 exclusive
消费者,阻止其他消费者监听队列。详见 独占消费者。
Rabbit Admin
您现在可以让 broker 生成队列名称,而无论 durable
、autoDelete
和 exclusive
设置如何。详见 配置 Broker。
Direct Exchange 绑定
此前,从 direct-exchange
配置的 binding
元素中省略 key
属性会导致队列或交换器以空字符串作为路由键进行绑定。现在,它将以提供的 Queue
或 Exchange
的名称进行绑定。如果您希望使用空字符串路由键进行绑定,则需要指定 key=""
。
缓存连接工厂
您现在可以将缓存连接工厂配置为缓存 Connection
实例及其 Channel
实例,而不是使用单个连接仅缓存 Channel
实例。详见 连接和资源管理。
绑定参数
<exchange
的
现在支持解析
子元素。您现在可以通过 key/value
属性对(用于匹配单个 header)或
子元素(允许匹配多个 header)来配置
的
。这些选项是互斥的。详见 Headers Exchange。
路由连接工厂
引入了一个新的 SimpleRoutingConnectionFactory
。它允许配置 ConnectionFactory
映射,以确定运行时使用的目标 ConnectionFactory
。详见 路由连接工厂。
MessageBuilder
和 MessagePropertiesBuilder
现在提供了用于构建消息或消息属性的“流畅 API”。详见 Message Builder API。
RetryInterceptorBuilder
变更
现在提供了用于构建监听器容器重试拦截器的“流畅 API”。详见 同步操作中的故障和重试选项。
添加了 RepublishMessageRecoverer
提供了这个新的 MessageRecoverer
,用于在重试耗尽时将失败的消息发布到另一个队列(包括 header 中的堆栈跟踪信息)。详见 消息监听器和异步情况。
默认错误处理器 (自 1.3.2 版起)
监听器容器中添加了一个默认的 ConditionalRejectingErrorHandler
。该错误处理器会检测到致命的消息转换问题,并指示容器拒绝该消息,以防止 broker 不断地重新投递不可转换的消息。详见 异常处理。
监听器容器 missingQueuesFatal
属性 (自 1.3.5 版起)
SimpleMessageListenerContainer
现在有一个名为 missingQueuesFatal
的属性(默认值:true
)。以前,缺少队列总是致命的。详见 消息监听器容器配置。