我正在尝试将本地具有的docker-compose设置转换为带有任务的ECS集群。我的docker-compose设置如下所示:
version: '3'
services:
rabbit-mq-service:
image: rabbitmq:3.6-management
ports:
- "15672:15672"
- "5672:5672"
environment:
RABBITMQ_DEFAULT_USER: ***
RABBITMQ_DEFAULT_PASS: ***
service-a:
image: service-a:latest
depends_on:
- rabbit-mq-service
restart: on-failure
command: --spring.profiles.active=docker --spring.rabbitmq.host=rabbit-mq-service
service-b:
image: service-b:latest
depends_on:
- rabbit-mq-service
restart: on-failure
command: --spring.profiles.active=docker --spring.rabbitmq.host=rabbit-mq-service
这是非常简单的东西,在Docker中效果很好。我可以运行docker-compose并获得Rabbitmq + 2服务,并且这两个服务都可以连接到Rabbit服务器。
现在,只要我对Rabbit服务器的主机名进行硬编码,就可以将service-a和service-b部署到ECS集群。这意味着我需要一个单独的EC2实例(或类似的实例)来运行Rabbit服务器。我真的希望我的群集具有一个Rabbit服务器,并使我的实例能够连接到它。到目前为止,还没有运气。
让Rabbit服务器位于ECS集群之外是否更好?
有什么建议么?
最佳答案
两种选择:
关于docker - 带RabbitMQ的Amazon ECS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51560602/