当前位置: 首页 > 知识库问答 >
问题:

aws ecs中docker容器间通过rabbitmq的通信

伯和蔼
2023-03-14

如果我们在不同的服务器上使用rabbitmq,它如何与不同的微服务进行对话?我在taskdefinition中使用网络模式作为“默认网络”,我应该将其更改为AWSVPC吗?

共有1个答案

钱志强
2023-03-14

“AWSVPC”网络模式不用于服务发现

网络模式awsvpc不是为了这个目的而开箱即用的。这种模式只是为每个正在运行的任务分配一个弹性的网络接口,提供一个动态的私有IP地址和内部DNS名称。这有助于获得主要的网络相关的好处,如控制,流日志,流量监测每个任务def。等等,我不确定是否有任何方法来跟踪这些动态的私人IP,并明智地使用它们。

Ref-https://docs.aws.amazon.com/amazonecs/latest/developerguide/task-networking.html

从轻松的角度来看,人们也提出了“ecs-task-kite”,但似乎还没有准备好生产--https://github.com/awslabs/ecs-task-kite

似乎现在使用AWS ECS服务发现机制是您最好的选择。虽然,我还没有机会测试它。

另一种方法是为RabbitMQ本身使用不同的集群,根据需要支持的协议,通过NLB或ALB公开它。并让服务集群使用它的ALB/NLBendpoint与RabbitMQ集群对话。在RabbitMQ不可伸缩的情况下,使ASG[min,max,desire=1]。

 类似资料:
  • 问题内容: 两个单独的Docker容器是否可以通过ZMQ IPC套接字进行通信?如果是这样,如何实现? 例如: Docker容器1 执行一个应用程序,该应用程序创建ZMQ响应套接字并绑定到“ ipc:// tmp / service_name”。 Docker Container#2 执行一个应用程序,该应用程序创建一个ZMQ Request套接字并连接到“ ipc:// tmp / servic

  • 我有两个容器 - 一个包含 react 应用程序,另一个包含烧瓶应用程序。 我可以使用下面的docker-compose文件和它们各自的Dockerfile构建两者,并且能够通过指定端口上的浏览器访问每个。但是,我的React应用程序对Flask的API调用没有被检索(它们在图片中没有Docker的情况下工作)。 任何建议都非常感谢! Docker-撰写 用于烧瓶应用程序的Dockerfile D

  • 我做错了什么? 作为命令运行docker run-d-name rabbit MQ _ awr-p 5672:5672-p 5673:5673-p 15672:15672 rabbit MQ:3-管理 但http://localhost:15672/没有在浏览器中启动 下面日志

  • 如果我知道一个Docker容器的IP地址,我就可以很容易地从另一个容器与它通信,但前提是它们在同一个网络中。 我的问题是,我如何与来自另一个网络的容器通信,为什么我不能访问同一台机器上的本地IP?我对网络解释感兴趣,为什么我可以从172.19.0.2访问172.19-0.1,但无法从172.20.0.1访问172.20-0.2。 让一个网络中的docker容器与另一个网络中的Docker容器进行通

  • 我是docker的新手。我在windows 10上使用docker for windows。我创建了一个docker容器应用程序(spring boot),该应用程序需要与rabbitmq通信-这也是在一个容器中。他们都使用相同的docker网络(默认网桥网络),但当我尝试连接到rabbitmq(端口5672)时,连接被拒绝。我使用的是容器IP(rabbitmq为172.17.0.2)。如果我在d

  • 问题内容: 我需要在Windows 2016 Server上使用Docker / Windows容器并为其准备Windows应用程序才能在其上运行。通过Powershell配置Windows并不像在Ubuntu上那样方便,尤其是如果您从未真正使用过Windows Server并且需要学习所有Powershell命令时,尤其如此;) 是否可以通过GUI访问Windows容器? 可以在Docker,U