1.7 自 1.6 以来的变化
AMQP 客户端库
Spring AMQP 现在使用新的 4.0.x 版本的amqp-client
库。
默认情况下,此客户端配置了自动恢复。
请参阅 RabbitMQ 自动连接/拓扑恢复。
默认情况下,4.0.x 客户端启用自动恢复。
虽然与此功能兼容, Spring AMQP 有自己的恢复机制,通常不需要 Client 端恢复功能。
我们建议禁用amqp-client 自动恢复,以避免AutoRecoverConnectionNotCurrentlyOpenException 代理可用但连接尚未恢复的实例。
从版本 1.7.1 开始, Spring AMQP 禁用它,除非你显式地创建自己的 RabbitMQ 连接工厂并将其提供给CachingConnectionFactory .
RabbitMQ 函数ConnectionFactory 由RabbitConnectionFactoryBean 默认情况下,也禁用了该选项。 |
Log4j 2 升级
最低 Log4j 2 版本(对于AmqpAppender
) 现在是2.7
.
该框架不再与以前的版本兼容。
有关更多信息,请参见Logging Subsystem AMQP Appenders。
Logback Appender
默认情况下,此 appender 不再捕获调用者数据(方法、行号)。
您可以通过设置includeCallerData
configuration 选项。
有关可用日志附加程序的信息,请参见Logging Subsystem AMQP Appenders。
Spring 重试升级
最低 Spring Retry 版本现在是1.2
.
该框架不再与以前的版本兼容。
关闭行为
您现在可以设置forceCloseChannel
自true
这样,如果容器线程在shutdownTimeout
、通道被强制关闭、
导致任何未确认的消息重新排队。
有关更多信息,请参阅 Message Listener Container Configuration (消息侦听器容器配置)。
JUnit@Rules
以前由框架内部使用的规则现在已在名为spring-rabbit-junit
.
看JUnit4@Rules
了解更多信息。
连接命名策略
新的ConnectionNameStrategy
现在提供,以从AbstractConnectionFactory
.
有关更多信息,请参阅连接和资源管理。
侦听器容器更改
事务回滚行为
现在,您可以将事务回滚时的消息重新排队配置为一致,无论是否配置了事务管理器。 有关更多信息,请参阅 回滚已接收消息的说明 。