代码之家  ›  专栏  ›  技术社区  ›  dr_dino

定制/架构AWS ELB以实现零停机时间

  •  1
  • dr_dino  · 技术社区  · 8 年前

    所以前几天我们遇到了一个问题,应用程序负载平衡器后面的一个实例未能通过实例状态检查和系统检查。我们的ELB花了大约10秒(我们能得到的最小值)才检测到这一点,并将实例标记为“不健康”,然而,由于ELB一直将流量路由到不健康的实例,我们在这10秒内损失了一些流量。有没有一个解决方案可以避免任何宕机,或者我是不是太不切实际了?

    1 回复  |  直到 8 年前
        1
  •  0
  •   asdf    8 年前

    我相信这不是你想听的答案,但为了在10秒不可忍受的情况下最大限度地减少系统上的流量损失,你需要实现自己的健康检查/负载平衡解决方案。我的组织有一些系统,在这些系统中,数据包丢失也是不可接受的,这就是我们需要做的。

    这个解决方案有两个方面。

    1. 您需要实现自己的负载平衡基础架构。我们选择使用Route53加权记录集(TTL为1s,我们将回到这里),每个服务器的权重相等
    2. 每个负载平衡的EC2实例启动一个ECS容器实例,其唯一目的是进行健康检查。它运行DNS和IP健康检查(python中的请求库),并在发现问题时实时添加/删除Route53加权记录。