0
点赞
收藏
分享

微信扫一扫

ElasticSearch(15)脑裂

概述

一个正常es集群中只有一个主节点(Master),主节点负责管理整个集群。

集群的所有节点都会选择同一个节点作为主节点。

脑裂问题的出现就是因为从节点在选择主节点上出现分歧导致一个集群出现多个主节点从而使集群分裂,使得集群处于异常状态
在这里插入图片描述

脑裂产生的原因

1 网络原因:网络延迟

一般es集群会在内网部署,也可能在外网部署,比如阿里云

内网一般不会出现此问题,外网的网络出现问题的可能性大些。

2 节点负载

主节点的角色既为master又为data。数据访问量较大时,可能会导致Master节点停止响应(假死状态)

#是不是有资格主节点
node.master : true
#是否存储数据
node.data: true

3 JVM内存回收

当Master节点设置的VM内存较小时,引发JVM的大规模内存回收,造成ES进程失去响应。

避免脑裂

  1. 网络原因
    discovery.zen.ping.timeout超时时间配置大一点。默认是3S

  2. 节点负载:角色分离策略
    候选主节点配置为

     node.master: true
     node.data: false
    

    数据节点配置为

    node.master: false
    node.data: true
    
  3. JVM内存回收
    修改config/jvm.options文件的-Xms和-Xmx为服务器的内存一半。

举报

相关推荐

0 条评论