TL; DR:
当Google云端HTTPS负载均衡器打开tcp流(在请求中使用" Connection:keep-alive"标头)时,是否有任何保证该流将持续多长时间(最多)对后端服务器保持开放状态?
长:
我在HTTPS负载均衡器后面部署了一个Go http服务器并且很快遇到了很多问题,因为我在套接字连接上设置了一个积极的(10s)读取截止日期,这意味着我的服务器经常在中间关闭连接阅读后续请求。很明显我做错了,但与此同时我不想在我的套接字上设置任何截止日期,因为我想防止这些服务器随着时间的推移慢慢泄漏死连接的可能性,吃掉了我所有的文件描述符。
因此,如果负载均衡器自动关闭5分钟后打开的任何tcp流,那将是很好的。这样我就可以将服务器的读取期限设置为(例如)6分钟,我可以确定我永远不会中断任何请求 - 截止日期只会在特殊情况下调用(例如来自FIN的数据包)我的服务器没有收到负载均衡器。
答案 0 :(得分:2)
我无法从Google企业支持中获得正式答案,但是从我的实验(分析多小时tcpdumps)看,负载均衡器将在闲置约10分钟后关闭连接(意味着没有tcp数据包) 10分钟)。
答案 1 :(得分:1)
Per here,计算实例的空闲TCP连接在10分钟后超时,这似乎证实了您的假设。