1.7 相较 1.6 的变化
AMQP 客户端库
Spring AMQP 现在使用 RabbitMQ 团队提供的 amqp-client 库的 4.0.x 版本。此客户端默认配置了自动恢复。请参阅 RabbitMQ 自动连接/拓扑恢复。
4.0.x 客户端默认启用自动恢复。尽管与此功能兼容,Spring AMQP 拥有自己的恢复机制,通常不需要客户端恢复功能。我们建议禁用 amqp-client 自动恢复,以避免在代理可用但连接尚未恢复时出现 AutoRecoverConnectionNotCurrentlyOpenException 实例。从 1.7.1 版本开始,Spring AMQP 默认禁用此功能,除非您明确创建自己的 RabbitMQ 连接工厂并将其提供给 CachingConnectionFactory。通过 RabbitConnectionFactoryBean 创建的 RabbitMQ ConnectionFactory 实例也默认禁用了该选项。 |
Log4j 2 升级
Log4j 2 的最低版本(对于 AmqpAppender)现在是 2.7。该框架不再与以前的版本兼容。有关更多信息,请参阅 日志子系统 AMQP Appender。
Logback Appender
此 appender 默认不再捕获调用方数据(方法、行号)。您可以通过设置 includeCallerData 配置选项重新启用它。有关可用日志 appender 的信息,请参阅 日志子系统 AMQP Appender。
Spring Retry 升级
Spring Retry 的最低版本现在是 1.2。该框架不再与以前的版本兼容。
关闭行为
您现在可以将 forceCloseChannel 设置为 true,这样,如果容器线程在 shutdownTimeout 内没有响应关闭请求,通道将被强制关闭,导致任何未确认的消息重新排队。有关更多信息,请参阅 消息监听器容器配置。
JUnit @Rules
以前在框架内部使用的规则现在已在名为 spring-rabbit-junit 的单独 jar 中提供。有关更多信息,请参阅 JUnit4 @Rules。
连接命名策略
现在提供了一个新的 ConnectionNameStrategy,用于从 AbstractConnectionFactory 填充目标 RabbitMQ 连接的特定于应用程序的标识。有关更多信息,请参阅 连接和资源管理。
侦听器容器的更改
事务回滚行为
您现在可以配置事务回滚时消息的重新排队,使其保持一致,无论是否配置了事务管理器。有关更多信息,请参阅 关于接收消息回滚的说明。