Elastic Stack日志分析(十三)- Elasticsearch集群脑裂解决方案

原文地址:https://program-park.github.io/2022/03/08/elastic_13/

1. 什么是脑裂

  Elasticsearch 在主节点上产生分歧,产生多个主节点,从而使集群分裂,使得集群处于异常状态,这个现象叫做脑裂。脑裂问题其实就是同一个集群的不同节点对于整个集群的状态有不同的理解,导致操作错乱,类似于精神分裂。

2. 脑裂产生的原因

  • 网络问题:集群间的网络延迟导致一些节点访问不到 master,认为 master 挂掉了从而选举出新的 master,并对 master 上的分片和副本标红,分配新的主分片;
  • 节点负载:主节点的角色既为 master 又为 data,访问量较大时可能会导致 Elasticsearch 停止响应造成大面积延迟,此时其他节点得不到主节点的响应认为主节点挂掉了,会重新选取主节点;
  • 内存回收:data 节点上的 Elasticsearch 进程占用的内存较大,引发 JVM 的大规模内存回收,造成 ES 进程失去响应;

3. 脑裂问题解决方案

  • 减少误判:discovery.zen.ping_timeout,节点状态的响应时间,默认为 3s,可以适当调大,如果 master 在该响应时间的范围内没有做出响应应答,判断该节点已经挂掉了。调大参数(如 6s),可适当减少误判;
  • 选举触发:discovery.zen.minimum_master_nodes:1,该参数是用于控制选举行为发生的最小集群主节点数量。当备选主节点的个数大于等于该参数的值, 且备选主节点中有该参数个节点认为主节点挂了,进行选举。官方建议为(n/2)+1,n 为主节点个数(即有资格成为主节点的节点个数);
  • 角色分离:即 master 节点与 data 节点分离,限制角色主节点配置为:node.master: truenode.data: false;从节点配置为:node.master: falsenode.data: true
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大Null

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值