【问题标题】:Persistent connections from client to AWS ELB从客户端到 AWS ELB 的持久连接
【发布时间】:2021-05-06 15:35:57
【问题描述】:

我有一个应用程序,前面有一个经典的负载均衡器。每当我们将 DNS(指向负载均衡器)更改为新的负载均衡器(因此也就是新环境)时,来自客户端的流量需要大量时间才能迁移到新环境。

我调查并发现客户端与负载平衡器之间存在持久连接。我查看了 AWS ELB 的设置,并没有找到任何关于客户端和 ELB 之间的连接。我正在寻找像 maxKeepAliveRequests 这样的东西,这基本上意味着在每个 ${maxKeepAliveRequests} 请求之后,客户端必须重新连接。

我看到 tomcat 支持这样的配置。不确定我对负载平衡器有哪些选择。

【问题讨论】:

    标签: amazon-web-services http tcp amazon-elastic-beanstalk amazon-elb


    【解决方案1】:

    应用程序负载平衡器有一个idle connection timeout,在此期间如果没有数据在客户端和负载平衡器之间来回发送,则连接将被断开。

    如果超过此超时,连接将断开,但这不仅仅是负载平衡器之间的迁移(这种情况会一直发生)。

    要考虑的另一件事是您的 DNS 解析,特别注意记录的 TTL。在任何记录更改期间,您都应该将这些值保持在较低水平,以便在需要时快速推出/回滚。

    如果 TTL 保持较低,所有客户端都应在短时间内转换到新的 DNS,这将很快将请求转发到您的新环境。

    【讨论】:

    • 连接不是空闲的,所以它们不会丢弃,关于 dns 解析。我已经经历了它和它的 10 秒。如果负载均衡器不支持这一点,那么我猜客户端就是问题所在。
    • 只要您的 TTL 为 10 秒,那么您无能为力。由于连接是与客户端的,因此他们需要确保连接不会超出可接受的限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多