【问题标题】:Azure Load Balancer keeps socket on server side open after timeoutAzure 负载均衡器在超时后保持服务器端的套接字打开
【发布时间】:2017-11-11 05:05:43
【问题描述】:

timeout documentation 表示客户端在向负载均衡器发送数据时收到错误。

连接关闭时,您的客户端应用程序可能会收到以下错误消息:“底层连接已关闭:预期保持活动状态的连接已被服务器关闭。”

但是我们的 service-fabric 端点​​仍然有那个已经超时的 tcp 套接字打开,即使是现在。

客户端在超时后刚刚发送了一个 TCP CLOSE。

为什么负载均衡器没有通知 Service Fabric 节点 tcp 连接因超时而关闭?

Service Fabric 节点上的 Windows 操作系统能否在无活动超时后关闭套接字?找到一个TCP Keep-alive 文档,我们的应用程序目前无法使用 tcp-keepalive 功能。

【问题讨论】:

    标签: sockets azure load-balancing azure-service-fabric


    【解决方案1】:

    当会话空闲超时时,负载均衡器不会发送 TCP RST。请与 Service Fabric 一起研究如何管理此方案并启用 TCP 保持活动发送。

    【讨论】:

    • 我们现在使用应用程序级别的keep-alive / heartbeat。如果心跳丢失,服务器会自行关闭连接。负载均衡器超时大于应用程序级心跳超时。此解决方案有效。感谢您描述负载均衡器的行为。
    • Azure 标准负载均衡器现在可以配置为在超时时向双方发送 TCP 重置(配置在负载均衡器规则中)。
    猜你喜欢
    • 1970-01-01
    • 2016-03-22
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多