【发布时间】:2015-05-24 00:02:47
【问题描述】:
我正在使用 Docker 和 Consul,我有几个关于代理服务映射的问题,尤其是在 docker 环境中。假设我有一个服务名称“myGreatService”,它是简单的 web nodejs helloworld 应用程序,使用名为“myGreatServiceImage”的 docker 镜像封装。从 Consul 文档中,我确实了解到,当您注册服务(通过 HTTP 或服务定义文件)时,服务即将“连接”到代理/领事节点(可以通过 /v1/catalog/service/ 检索有线节点) .因此,如果一个领事节点已关闭(或节点健康检查确定它已关闭),那么“连接”到该领事节点的所有服务都将自动标记为已关闭。我对吗 ?
如果我通过 docker 在单个主机上多次运行我的 GreatServiceImage 图像(导致多个“myGreatService”服务实例) 我应该运行多少个代理? 每个主机管理该主机上的所有容器(所有服务实例)?或者也许每个容器(服务实例)都有一个单独的代理?
【问题讨论】:
-
在生产中,建议在集群模式下运行consul(3-5台服务器),这样当(consul)节点发生故障时,集群仍然可用,并且服务定义可读。它是一个分布式系统,因此在此设置中,所有节点都拥有所有数据,因此您的服务不会“连接”到特定的领事节点。
标签: consul