|
此版本仍在开发中,目前尚不稳定。如需最新稳定版本,请使用 Spring AMQP 4.0.2! |
1.7 版本相较于 1.6 版本的变更
AMQP 客户端库
Spring AMQP 现在使用 RabbitMQ 团队提供的新版 4.0.x 版本的 amqp-client 库。该客户端默认配置了自动恢复功能。请参阅 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 追加器。
Spring 重试升级
最低 Spring 重试版本现已为 1.2。该框架不再与旧版本兼容。
关闭行为
现在您可以将 forceCloseChannel 设置为 true,以便在容器线程在 shutdownTimeout 秒内未响应关闭请求时,强制关闭通道,导致任何未确认的消息被重新入队。消息监听器容器配置 以获取更多信息。
连接命名策略
现在提供了一个新的 ConnectionNameStrategy,用于从 AbstractConnectionFactory 中填充针对目标 RabbitMQ 连接的应用程序特定标识信息。
有关更多信息,请参阅 连接与资源管理。
监听器容器变更
事务回滚行为
现在,您可以在事务回滚时配置消息重新入队,无论是否配置了事务管理器,结果都保持一致。有关已接收消息回滚的说明 以获取更多信息。