我们正致力于从单一应用程序切换到微服务。 每个微服务都将通过Amazon ECS在Docker上运行。
我们决定使用Consul进行服务发现。我们在VPC内的EC2实例上运行了3台服务器。
我的问题如下:
如何/在哪里为每个微服务启动Consul代理?我是否在每个实例上运行另一个容器(通过Docker-Compose)和Consul里面?或者以某种方式在每个微服务的现有Docker容器中运行Consul代理?
附件是我的情况的粗略表示。 Consul客户端(黄色)应该在自己的Docker容器中还是在Node.js容器内?
答案 0 :(得分:1)
Consul是另一项服务,我不会将其部署在我的微服务的容器中。在大型场景中,我将部署几个Consul容器:一些将在服务器模式下运行代理(将它们视为Masters),一些将在客户端模式下运行(将它们视为Slaves)。
我不会将在客户端模式下运行的代理部署为应用程序容器的一部分,因为: