我的应用程序中的Python elasticsearch客户端存在连接问题(拒绝连接),因为空闲的TCP连接由于防火墙而超时(我无法阻止这种情况)。
我解决此问题的最简单方法是,如果我可以通过定期向其发送一些数据来阻止连接进入空闲状态,那么elasticsearch客户端中的嗅探选项似乎是理想的选择,但是他们会{{{{{ 3}}:
sniff_on_start - 指示是否获取节点列表的标志 来自启动时的cluser
sniffer_timeout - 秒数 自动嗅探之间
sniff_on_connection_fail - 标志控制 如果连接失败触发嗅探
sniff_timeout - 用于嗅探请求的超时 - 它应该是一个快速的api调用,我们可能会讨论更多节点,因此我们希望快速失败。初始嗅探期间未使用(如果启用sniff_on_start),则仍未初始化连接。
如果我使用sniff_timeout
或sniffer_timeout
选项,我希望客户每隔5分钟嗅一次?此外,sniff_on_start
参数应设置为True
吗?
答案 0 :(得分:0)
我使用了@val中的建议,发现这些设置解决了我的问题:
sniff_on_start=True
sniffer_timeout=60
sniff_on_connection_fail=True
嗅探会在TCP连接上放置足够的流量,以便它们永远不会空闲,以防止我们的防火墙终止连接。