zoukankan      html  css  js  c++  java
  • ES脑裂问题

    脑裂:一个集群中的不同节点对于集群的状态有了不一样的理解

    ES集群的总体状态是red,本来9个节点的集群在结果中只显示4个节点在线;

    正常情况下,集群中的所有节点应该对集群中的master的选择是一致的,这样获得的状态信息也应该是一致的,不一样的状态信息,说明不同的节点对master的选择出现了异常-----也就是所谓的脑裂问题,这样的脑裂状态直接让节点失去了集群的正确状态,导致集群不能正常工作。

    可能导致脑裂的原因:

      1、网络:由于网络通信问题造成某些节点认为master死掉,而另选master的可能性较小,检查监控,查看内网流量是否异常

      2、节点负载

        由于master和data混合在一起,所以当工作节点的负载较大时,导致对应实例停止响应,而这台服务器如果正充当着master节点的身份,那么一部分节点就会认为这个master节点失效了,股重新选举新的节点,这时就出现了脑裂;同时由于data节点上ES进程占用的内存较大,较大规模的内存回收操作也能造成ES进程失去响应。

     

    应对方法:

      1、master和data分离

      2、两个直观参数可以减缓脑裂问题的出现

        discovery.zen.ping_timeout(默认是3秒):默认情况下,一个节点会认为:如果master节点在3秒之内没有应答,那么这个节点就是死掉了,而增加这个值,会增加节点等待响应的时间,从一定程度上会减少误判。

        discovery.zen.minimum_master_nodes(默认是1):这个参数控制的是,一个节点需要看到的具有master节点资格的最小数量,然后才能在集群中做操作,官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量(但是实际情况实际对待)

    以上只是减缓这种现象的发生,不能根除!

  • 相关阅读:
    中国一些web service收藏
    DataSet 和 List<T> 相互 转换
    JS图表
    IIS DirectoryEntry
    JS弹框
    Remoting
    Del SVN Configuare File BAT
    Viewport3D对象转换成图片
    在WPF中进行碰撞检测
    Button自定义样式
  • 原文地址:https://www.cnblogs.com/qfdxxdr/p/8336344.html
Copyright © 2011-2022 走看看