从客户端到 AWS ELB 的持久连接
Posted
技术标签:
【中文标题】从客户端到 AWS ELB 的持久连接【英文标题】:Persistent connections from client to AWS ELB 【发布时间】:2021-05-06 15:35:57 【问题描述】:我有一个应用程序,前面有一个经典的负载均衡器。每当我们将 DNS(指向负载均衡器)更改为新的负载均衡器(因此也就是新环境)时,来自客户端的流量需要大量时间才能迁移到新环境。
我调查并发现客户端与负载平衡器之间存在持久连接。我查看了 AWS ELB 的设置,并没有找到任何关于客户端和 ELB 之间的连接。我正在寻找像 maxKeepAliveRequests 这样的东西,这基本上意味着在每个 $maxKeepAliveRequests 请求之后,客户端必须重新连接。
我看到 tomcat 支持这样的配置。不确定我对负载平衡器有哪些选择。
【问题讨论】:
【参考方案1】:应用程序负载平衡器有一个idle connection timeout,在此期间如果没有数据在客户端和负载平衡器之间来回发送,则连接将被断开。
如果超过此超时,连接将断开,但这不仅仅是负载平衡器之间的迁移(这种情况会一直发生)。
要考虑的另一件事是您的 DNS 解析,特别注意记录的 TTL。在任何记录更改期间,您都应该将这些值保持在较低水平,以便在需要时快速推出/回滚。
如果 TTL 保持较低,所有客户端都应在短时间内转换到新的 DNS,这将很快将请求转发到您的新环境。
【讨论】:
连接不是空闲的,所以它们不会丢弃,关于 dns 解析。我已经经历了它和它的 10 秒。如果负载均衡器不支持这一点,那么我猜客户端就是问题所在。 只要您的 TTL 为 10 秒,那么您无能为力。由于连接是与客户端的,因此他们需要确保连接不会超出可接受的限制。以上是关于从客户端到 AWS ELB 的持久连接的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用AWS自己的ELB证书进行HTTPS / SSL连接吗?
我可以使用 AWS 自己的 ELB 证书进行 HTTPS/SSL 连接吗?