【发布时间】:2019-11-03 16:13:36
【问题描述】:
我有一个在基于微服务的架构上运行的 Node-Express 网站。我使用一个 EC2 实例将微服务部署在 Amazon ECS 集群上。微服务位于将外部流量正确路由到服务的应用程序负载均衡器后面。该系统按预期工作,除了一个问题:我需要从一个服务向另一个服务发出 POST 请求。我正在尝试为此使用 axios,但我不知道要在 axios 中发布什么网址。在本地测试时,我只是在服务 1 中使用了axios.post('http://localhost:3000/service2',...),但是我应该在这里怎么做呢?
【问题讨论】:
-
您在 ECS 集群中使用的是哪个网络选项?网桥/awsvpc ?
-
@ImranArshad 现在,我正在使用网桥。但是当我阅读 aws 文档来解决这个问题时,我认为 awsvpc 是我需要的。我对吗?我也在阅读 Route 53,但它是一项付费服务,我正在寻找免费选项。
-
Route 53 用于服务发现,是可选的。您是否尝试通过负载均衡器访问该服务?那么一个服务通过 LoadBalancer 调用另一个服务?
-
@ImranArshad 我尝试从服务 1 内部调用
axios.get('/service2/method'...),但收到504 Gateway Timeout错误 -
我假设您的负载均衡器是公开的?尝试使用应用程序负载平衡器 DNS 调用您的服务。
标签: amazon-web-services docker amazon-ec2 microservices amazon-ecs