Rabbitmq spring amqp HA支持

Rabbitmq spring amqp HA支持,rabbitmq,spring-amqp,Rabbitmq,Spring Amqp,我使用spring amqp连接到rabbitmq节点集群(a、B和C)。假设集群中的一个rabbitmq节点关闭(C关闭)。另外,假设有两个消息接收器(接收器_1和接收器_2)正在使用到节点C的连接。当C下降时,接收器_1和接收器_2是否自动切换其连接以连接到A或B?当C再次出现时会发生什么?某些接收器连接是否重新分配以使用C?RabbitMQ本身不支持故障转移。当RabbitMQ集群中的一个节点宕机时,将选择一个新的主节点,集群其余部分的业务将照常进行 因此,在您的示例中,接收器_1和接收器

我使用spring amqp连接到rabbitmq节点集群(a、B和C)。假设集群中的一个rabbitmq节点关闭(C关闭)。另外,假设有两个消息接收器(接收器_1和接收器_2)正在使用到节点C的连接。当C下降时,接收器_1和接收器_2是否自动切换其连接以连接到A或B?当C再次出现时会发生什么?某些接收器连接是否重新分配以使用C?

RabbitMQ本身不支持故障转移。当RabbitMQ集群中的一个节点宕机时,将选择一个新的主节点,集群其余部分的业务将照常进行

因此,在您的示例中,接收器_1和接收器_2将需要处理C下降的情况,并知道如何尝试连接到A或B

您可以在此处查看相关的官方文档:


就个人而言,我使用haproxy(http://haproxy.1wt.eu/)以平衡所有客户端的连接。haproxy不仅会实现负载平衡,还会自动检测节点何时脱机,并将所有连接重新路由到另一个活动节点。话虽如此,它也不会天衣无缝。应用程序仍将断开连接,因此您需要捕获异常并尝试重新连接。

关于RabbitMQ不支持故障转移的说法是正确的。从spring amqp客户端文档来看,它似乎支持故障转移,但不清楚节点故障时连接是否会进行负载平衡。如何捕获异常并尝试重新连接?你是否正在捕捉例如关机信号