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)。以前,缺少队列总是致命的。详见 消息监听器容器配置。