多IP地址场景下Consul的可用性及节点配置问题咨询
Consul场景支持性说明
这个场景可以正常工作,核心逻辑基于Consul的两个核心特性:
- 节点配置的
join地址仅用于初始集群加入阶段,节点成功加入集群后,会切换为使用各自宣告的IP(advertise address)进行集群内的通信,不会在节点间交换初始的join地址。 - 只要每个节点能通过自己配置的join地址成功连接到集群中的任意节点完成加入,后续集群内部的通信就完全依赖节点宣告的IP,和join阶段使用的地址无关。
对应你给出的实例:
- Node A用仅自身可达的B.1完成集群加入后,会以自己宣告的A.1和Node B的宣告IP(而非B.1或B.2)进行通信
- Node C用仅自身可达的B.2完成集群加入后,同样使用宣告IP和集群内节点交互
- 集群内节点不会同步各自的join列表,也不会使用其他节点的join地址进行通信,完全符合你“节点不交换对等IP”的要求
内容的提问来源于stack exchange,提问作者Marit
相关产品推荐
相关产品推荐

