我有一个节点集群,每个队列都镜像到每个节点。最初我的所有连接都在第一个节点上排队和出列,但是如果它关闭,客户端需要转移到另一个节点,如何从节点数组中知道
Address[] addrArr = new Address[]{ new Address(hostname1, portnumber1)
, new Address(hostname2, portnumber2), ...};
哪个节点最早?因为它将更像死亡的节点。
答案 0 :(得分:1)
我假设您正在使用RabbitMQ的Highly Available Queues(如果没有,您应该认真考虑它)。在这种情况下,RabbitMQ会自动处理所有内容。引用文档,
如果停止包含镜像队列主服务器的RabbitMQ节点,则某个其他节点上的某个从属节点将被提升为主节点
所以,你不必担心它。队列内容会自动复制,如果队列因某种原因而关闭,队列的另一个副本将成为主队列(此队列将相同失败的队列,而不仅仅是类似的队列)。 / p>