我的团队正在开发一个包含 20 个微服务的应用程序,这将部署在 aws ecs ec2 实例中。我计划在集群中启动 3 个 aws ec2 实例。每个微服务都有它的任务定义和服务。
构建 docker 容器,推送到 aws ecr,然后使用 Jenkinsfile 通过 jenkins 部署到 ecs。在 taskdefinition json 文件中,我将主机端口设置为 0,这样每个 docker 容器主机端口都是随机的,如果我们将所需的服务计数增加到 2 或更多,则不会有任何端口冲突。
我猜同一任务定义上的容器可以使用链接进行通信,但在我的情况下,我们无法预测 docker 容器在哪个实例上。
如果我们在不同的服务器上使用 rabbitmq,它如何与不同的微服务通信?我在任务定义中使用网络模式作为“默认网络”,我应该将其更改为 awsvpc 吗?