我需要通过HAProxy使用来自Rabbit HA集群的消息,因此我切换到CacheMode.CONNECTION
,因为spring-amqp-documentation中建议使用SimpleMessageListenerContainer
。此外,我需要消耗来自许多队列的消息,因此我为每个队列SimpleMessageListenerContainer
创建了4个并发消费者,我几乎没有问题:
CacheMode.CONNECTION
设置更多的队列,看起来更有效但也许还有另一种更好的方法?SimpleMessageListenerContainer
中的每个消费者切换到SimpleMessageListenerContainer
时,是否创建了新连接?我可以以某种方式为给定SimpleMessageListenerContainer
中的所有消费者设置一个连接,或者可能不建议这样做吗?如何处理异常
“org.springframework.amqp.rabbit.connection.AutoRecoverConnectionNotCurrentlyOpenException: 自动恢复连接当前未打开“
当一个RabbitMQ节点关闭时,我收到了它。即使节点再次启动,<div class="msg-con">
<ul class="messages">
<li>messages</li>
</ul>
</div>
也无法重新连接。
提前感谢您的帮助。
答案 0 :(得分:0)
即将发布的2.0版本有一个新的DirectMessageListenerContainer
,它跨容器documentation here共享线程。
2.0.0.M4
里程碑现已上市; GA预计将于7月中旬发布。
如果您希望每个容器有一个连接,请使用默认缓存模式和每个容器的单独连接工厂。
禁用客户端的连接工厂自动恢复机制;它在4.x客户端默认启用; Spring AMQP有自己的恢复机制,通常可以更快地恢复。从版本1.7.1开始,Spring AMQP默认禁用它,除非您配置自己的Rabbit ConnectionFactory。