首页 > 解决方案 > 任务停止后ECS服务发现更新太晚

问题描述

Stackoverflow 服务发现翻译:购物提要中的框 Stories 发货方法 Review + Maand

你好,

我使用 Fargate 启动类型在同一个集群中运行 2 个 AWS ECS 服务(A 和 B)。

服务 A 应该能够连接到服务 B。这可以使用Service Discovery来实现。我创建了一个backend.localTTL为 15 秒的服务发现。服务 B 中的任务被添加到取消注册时间为 30 秒的目标组中。

+--------------+     +-------------+        +--------------+
| Application  +----->  ECS: A     +-------->  ECS: B      |
|    Load      |     +-------------+        +--------------+
|  Balancer    |     |   Task 1    |        |    Task 1    |
+--------------+     |   Task 2    |        |    Task .    |
                     +-------------+        |    Task n    |
                                            +--------------+

这是完美的,从服务 A,我可以向http://backend.local 发出请求,这些请求被路由到服务 B 中的任务之一。

但是,在滚动部署服务 B 之后,服务发现 DNS 记录不会及时更新。因此nslookup backend.local也返回不再可用的旧任务的 IP 地址。

部署期间任务的生命周期是:

我希望新任务在它们“运行”之后是可发现的,并且在目标组取消注册延迟开始时不再可发现。

如何确保服务发现不会使旧任务可发现?

标签: amazon-ecsservice-discoveryaws-fargate

解决方案


推荐阅读