数说技术 | 数据处理方法:es节点连接超时分析
elasticsearch简写es,是一个高扩展、开源的全文检索和分析引擎,它可以实时地快速存储、搜索、分析海量的数据。在数据的采集与处理过程中,es需要由若干节点连接组成es集群。
近期,DataStory为提升数据采集流畅性,对 es集群进行版本升级、索引分库、冷热分离、读写分离等一系列性能优化,同时升级相关业务和平台侧,目前,DataStory搭建两套es集群进行数据迁移和数据双写等操作,本文将对实际优化过程中所遇到的es节点连接超时问题展开分析。
01 问题
在新集群搭建初期,总会出现某几个节点与其他节点通信异常导致节点频繁加入、退出集群。分析集群日志后认为是节点之间ping超时导致,查看官方文档发现主要由以下两个参数控制节点互通超时:
discovery.zen.ping_timeout
discovery.zen.fd.ping_timeout
A.对节点通信相关参数进行调整:
原来的参数配置
discovery.zen.ping_timeout: 3s
discovery.zen.fd.ping_timeout: 30s
discovery.zen.fd.ping_interval: 1s
discovery.zen.fd.ping_retries: 3
修改后的参数配置
discovery.zen.ping_timeout: 10s
discovery.zen.fd.ping_timeout: 60s
discovery.zen.fd.ping_interval: 10s
discovery.zen.fd.ping_retries: 10
discovery.zen.masterelection.ignorenonmasterpings: true
B.参数调整后,节点无法通信、频繁下线的现象得到很大改善, es集群正常运行。
02 源码分析
discovery.zen.pingtimeout与discovery.zen.fd.pingtimeout区别
网上对这两个参数介绍很笼统,没有具体说明每个参数的实际使用目的和设置带来的好处或影响,只说这两个参数是集群ping过程的超时等待时间,如果只是设置超时时间没必要搞两个参数,因此特意翻看源码分析这两个参数的区别及作用。
以下为完整分析:
评论
评论
推荐评论
暂无评论哦,快来评论一下吧!
全部评论(0条)