在我的微服务系统中,我计划使用docker swarm和Consul。 为了确保Consul的高可用性,我将构建一个由3个服务器代理组成的集群(以及每个节点的客户端代理),但这并不能使我免于本地的领事代理失败。
我错过了什么吗? 如果没有,我如何配置swarm以了解超过1个consul代理?
答案 0 :(得分:0)
Consul是唯一一个在使用swarm时不支持多个端点的服务发现后端。
zookeeper和etcd都支持etcd //10.0.0.4,10.0.0.5格式,为" cluster"提供多个Ip。使用Swarm时的发现后端。
回答你的问题如何配置Swarm以支持1个以上的领事(服务器) - 我没有明确的答案,但可以指出你的方向和你可以测试的东西(不保证) :
值得测试的一个建议(不推荐用于生产)是使用负载均衡器,可以将您的请求从Swarm管理器传递到三个领事服务器之一。
因此,当启动swarm管理器时,您可以指向consul:// ip_of_loadbalancer:port
然而,这将导致LB成为瓶颈(如果它下降)。
我没有对上述内容进行测试,如果能够正常工作则无法回答 - 这仅仅是一个建议。