tl;dr:
当谷歌云 HTTPS 负载平衡器打开一个 tcp 流(请求中带有“连接:保持事件” header )时,是否可以保证该流对后端保持打开多长时间(最大)服务器?
更长:
我在 HTTPS 负载均衡器后面部署了一个 Go http 服务器,很快就遇到了很多问题,因为我在我的套接字连接上设置了激进的(10 秒)读取截止时间,这意味着我的服务器经常在中间关闭连接阅读后续请求。很明显我做错了,但同时我不想在我的套接字上设置任何截止日期,因为我想防止这些服务器随着时间的推移慢慢泄漏死连接的可能性,吃掉我所有的文件描述符。
因此,如果负载均衡器在 5 分钟后自动关闭它们打开的任何 tcp 流,那就太好了。这样我就可以将我的服务器的读取截止时间设置为(例如)6 分钟,并且我可以确定我永远不会中断任何请求 - 截止时间只会在特殊情况下调用(例如未收到来自负载均衡器的 FIN 数据包通过我的服务器)。
最佳答案
我无法从 Google 企业支持部门获得官方答复,但从我的实验(分析多小时的 tcpdumps)来看,负载均衡器似乎会在闲置约 10 分钟后关闭连接(意味着没有 tcp 数据包) 10 分钟)。
关于load-balancing - 谷歌云 HTTP(S) 负载平衡器将保持 tcp 连接打开多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603274/