美文网首页
Elastic search keep alive 问题

Elastic search keep alive 问题

作者: NazgulSun | 来源:发表于2019-12-15 16:43 被阅读0次

    场景

    client A 和 es server 不在一个 网络里面,只开了 9200端口通信。
    client A 和 es 之间ping 不通。

    问题

    每个一段时间,比如过了一个晚上,访问es 的时候,总有一些请求 会timeout。
    但是再发几个,或者重启都没有为问题。

    root cause

    linux server 的tcp 默认开启 tcp_keep_alive 机制。
    默认2个小时,没有连接的话,就会去 发包探测对方是否还活着。
    按道理,如果keep alive 机制正确的话,是不会断开连接的。

    问题出在了网络环境,也就是我们 的client 和serve 不再一个 内网,需要过 核心路由器。
    核心路由器一般都会有 一个 长连接掐断功能。
    我们的核心路由器设置的时间是 30mins,所有很多连接被掐断了。

    解决方案

    1. 要么修改 tcp 的keep alive 时间,小于 30mins。
    2. 要么在应用层自己发送 heartbeat。

    我们用的是自己发送 heartbeat。

    相关文章

      网友评论

          本文标题:Elastic search keep alive 问题

          本文链接:https://www.haomeiwen.com/subject/ubxlnctx.html