使用python elasticsearch客户端嗅探解决死TCP连接问题
我的应用程序中的Python elasticsearch客户端存在连接问题(连接被拒绝),因为防火墙导致空闲TCP连接超时(我没有办法阻止) 修复此问题的最简单方法是,如果我可以通过定期发送一些数据来防止连接闲置,elasticsearch客户端中的嗅探选项似乎非常适合此情况,但它们是: sniff_on_start–指示是否获取节点列表的标志 在启动时从cluser 嗅探器超时–秒数 在自动嗅探之间 嗅探连接失败-标志控制 如果连接失败会触发嗅探 sniff_timeout–用于sniff请求的超时-它应该是一个快速api调用,并且我们可能会与更多节点通信,因此我们希望快速失败。在连接尚未初始化的初始嗅探(如果启动时嗅探)期间不使用使用python elasticsearch客户端嗅探解决死TCP连接问题,python,
elasticsearch,django-haystack,Python,
elasticsearch,Django Haystack,我的应用程序中的Python elasticsearch客户端存在连接问题(连接被拒绝),因为防火墙导致空闲TCP连接超时(我没有办法阻止) 修复此问题的最简单方法是,如果我可以通过定期发送一些数据来防止连接闲置,elasticsearch客户端中的嗅探选项似乎非常适合此情况,但它们是: sniff_on_start–指示是否获取节点列表的标志 在启动时从cluser 嗅探器超时–秒数 在自动嗅探之间 嗅探连接失败-标志控制 如果连接失败会触发嗅探 sniff_timeout–用于sniff请求
我希望客户端每(比如)5分钟嗅探一次,我应该使用
sniffer\u timeout
还是sniffer\u timeout
选项?此外,是否应将启动时的嗅探参数设置为True
?我使用了来自的建议,发现这些设置解决了我的问题:
sniff_on_start=True
sniffer_timeout=60
sniff_on_connection_fail=True
嗅探在TCP连接上提供了足够的流量,这样它们就不会空闲足够长的时间,我们的防火墙就可以杀死连接。这个答案可能会有所帮助:@val我使用了这个答案中的设置,如果它起作用,我会报告。需要一些时间来测试它。@val它起作用了!谢谢-我已经留下了一个答案,以防其他人有这个问题。酷,很高兴你找到了答案。如果有帮助,别忘了投票;-)