关于elasticsearch node 节点不可用的故障分析

本文介绍了解决Elasticsearch集群中出现NoNodeAvailableException的问题,通过调整CentOS系统的内核参数net.ipv4.tcp_keepalive_time来优化TCP连接保持时间,确保集群节点间的稳定通信。

开发那边在搭建集群的时候,无论如何测试,node 节点就是连不上,始终报错误

org.elasticsearch.client.transport.NoNodeAvailableException: No node available

后开看了下,本地环境,原因是回话时间太多,而他的本地环境并没有做内核优化,而线上都做了统一的内核优化,其中一条就是吧,检测tcp 连接探测间隔在5秒,对es 来说,太断了,

google 搜到一片文章,连接如下

https://blog.trifork.com/2015/04/08/dealing-with-nodenotavailableexceptions-in-elasticsearch/

大概内容是,这根本因为系统没有调优内核,导致无法连接,与我们相反,他是保持连接时间探测过长导致的

那么我们可以推测,tcp 内核连接,要保持在一定的数值范围内,而且必须与es 连接的工作原理相符,不然linux 系统的防火机制,和tcp 连接探测机制,会把还需要继续保持的连接给干掉,结果就会变成了,没有节点可用

具体操作如下

centos 系统

修改内核参数

net.ipv4.tcp_keepalive_time=7200(默认值)

改为

net.ipv4.tcp_keepalive_time=600(具体看情况)

















本文转自wks9751CTO博客,原文链接: http://blog.51cto.com/wks97/2086023,如需转载请自行联系原作者





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值