长连接的连接排空(>1小时)

0

【以下的问题经过翻译处理】 我的客户在一个经典负载均衡器(Classic Load Balancer)后面的自动伸缩组(Auto-Scaling Group)中运行他们的应用程序。但是,应用程序有时会有持续数小时的连接。他们正在寻求应用程序的持续部署方案。计划是创建一个带有新部署版本的新ASG,将其连接到CLB,并从CLB中断开旧的ASG。

由于负载均衡器的最大连接排空超时时间是60分钟,它将在每小时开始时销毁任何在用的连接,然后实例将被ASG终止。

他们是否可以使用Amazon Route 53中的“更新DNS路由”方法(来自https://d1.awsstatic.com/whitepapers/AWS_Blue_Green_Deployments.pdf)?如果可以,当他们将100%的流量路由到新部署时,到旧部署的现有连接仍然会保持活动状态吗?

还有没有其他的办法?他们需要实现自定义逻辑来路由和排空连接吗?有没有AWS服务中的功能可以利用?

profile picture
专家
已提问 5 个月前32 查看次数
1 回答
0

【以下的回答经过翻译处理】 他们可以这样做,但要注意这样做不会利用连接排空功能,因为他们将会更改DNS指向不同的ELB。在此期间,旧负载均衡器上现有的连接不受影响,直到客户端重新连接或重新解析DNS。

另一个选择是他们可以将新ASG附加而不分离旧ASG,让旧ASG中的所有健康检查失败。然后他们可以等待(期望排空时间-配置的排空时间)并注销ASG。相对于Route53,这种方式的优点是客户端不必担心DNS,不需要维护2个ELB,您可以选择任何所需的排空时间。这是因为CLB将不健康的后端与已注销的后端一样处理,允许在飞行的请求完成且不发送新请求。请注意,对于TCP侦听器,连接到不健康的目标的连接不会被ELB中断,客户端或后端导致其关闭或失败时才会中断。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则