数说技术 | 数据处理方法:es节点连接超时分析

原创 收藏 评论
举报 2018-12-19

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过程的超时等待时间,如果只是设置超时时间没必要搞两个参数,因此特意翻看源码分析这两个参数的区别及作用。

以下为完整分析:


    参与评论

    文明发言,无意义评论将很快被删除,异常行为可能被禁言
    DIGITALING
    登录后参与评论

    参与评论

    文明发言,无意义评论将很快被删除,异常行为可能被禁言
    800

    推荐评论

    暂无评论哦,快来评论一下吧!

    全部评论(0条)