[英]Spring Integration issue on RabbitMQ cluster restart
我们的系统中有几个RabbitMQ队列,我们使用Spring Integration amqp:inbound-channel-adapter来消耗消息。 Spring应用程序在5个JBoss节点上运行(不在集群中)
RabbitMQ端是两个带有负载均衡器的集群节点,具有持久队列,在应用程序端,侦听器的定义非常简单,连接工厂的定义如下:
<rabbit:connection-factory id="amqpConnectionFactory" username="${orts.rabbitmq.username}" password="${orts.rabbitmq.password}"
host="${orts.rabbitmq.endpoint}" />
以及几个定义如下的inbound-channel-adapter:
<amqp:inbound-channel-adapter id="artiqAmqpInboundChannelAdapter"
channel="artiq.queued.action.filter.outbound.channel" error-channel="artiq.recovery.router.channel"
connection-factory="amqpConnectionFactory" header-mapper="amqpHeaderMapper"
queue-names="ortsArtiqQueue" />
当由于某种原因(例如,部署新配置)而不得不重新启动RabbitMQ集群时,我们遇到了意外的行为。重新启动后,碰巧一个或多个侦听器停止使用消息,并且我们必须重新启动JBoss节点以进行恢复。
请注意,每次受影响的队列可能不同时,此行为并不绑定到特定的队列。 另请注意,部署的新配置不会修改任何现有队列(例如,当我们添加新队列时发生)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.