任务停止后,ECS服务发现更新太晚

Stackoverflow服务发现 翻译:购物Feed中的框 故事船方法 评论+ Maand

嗨,

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

服务A应该能够连接到服务B。使用Service Discovery可以实现。 我创建了一个服务发现backend.local,其 TTL为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地址。

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

  • 新任务:Pending -> activating -> Running
  • 旧任务:Running -> Deactivating --> Stopped

我希望新任务在“运行”之后就可以发现,而当目标组取消注册延迟开始时就不再可以发现。

如何确保服务发现功能不会发现旧任务?

kyj09 回答:任务停止后,ECS服务发现更新太晚

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3008777.html

大家都在问