【问题标题】:Send POST request from one service to another in Amazon ECS在 Amazon ECS 中将 POST 请求从一项服务发送到另一项服务
【发布时间】: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


【解决方案1】:

所以有多种方法。
1。在服务后面使用 Application Load Balancer 在这种方法中,您将微服务放在负载均衡器后面并发送请求,您提供负载均衡器 URL。您可以为同一个负载均衡器使用基于路径的路由,也可以使用多个负载均衡器。

2。使用服务发现
在这种方法中,您让请求者发现它。现在服务发现可以通过各种方式完成,如using ALB or Route 53 or ECS or Key Value Store or Configuration Management or Third Party SoftwareConsul

【讨论】:

    猜你喜欢
    • 2019-12-06
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2016-09-30
    • 2016-01-04
    • 1970-01-01
    相关资源
    最近更新 更多