ElasticSearch | 集群分布式模型 | 选主 | 脑裂

分布式特性

ElasticSearch 的分布式架构带来的好处
  • 存储的水平扩展,支持 PB 级的数据;
  • 提高系统的可用性,部分节点停止服务,整个集群的服务不受影响;
ElasticSearch 的分布式架构
  • 不同的集群通过不同的名字来区分,默认名字是 elasticsearch;
  • 通过配置文件修改,或者命令行中 -E cluster.name=geektime 进行设定;

Master Eligible Node | 选主过程

  • Master Eligible Node 会相互 Ping 对方,Node Id 低的会被选举为 Master Node;
  • 其他节点会加入集群,但是不承担 Master 节点的角色,一旦发现被选中的主节点丢失,就会在其他节点中选举出新的 Master 节点;

脑裂问题 | Split-Brain

  • 脑裂问题是分布式系统的经典网络问题,当出现网络问题时,一个节点和其他节点无法连接,比如:
  • 原来集群中有 3 个节点,Node1 是 Master Node,Node2 和 Node3 是 Master Eligible Node;
  • 当发生网络问题时,Node2 和 Node3 会重新选举 Master;
  • Node1 自己还是作为 Master 组成一个集群,同时更新 Cluster Node;
  • 此时会导致 2 个 Master Node 维护了不同的 Cluster State,当网络恢复后,无法选择正确的 Cluster State 恢复;

如何避免脑裂问题

  • 限定一个选举条件,设置 quorum,只有在 Master Eligible Node 节点数大于 quorum 时,才能进行选举;
  • Quorum = (Master Eligible Node / 2)+ 1;
  • 当 3 个 Master Eligible Node 时,设置 discovery.zen.minimum_master_nodes 为 2,即可避免脑裂;
从 7.0 开始,无需配置 minimum_master_nodes
  • 移除 minimum_master_nodes 参数,让 ElasticSearch 自己选择可以形成仲裁的节点;
  • 典型的主节点选举现在只需要很短的时间就可以完成,集群的伸缩会变得更安全、更容易、并且可能造成丢失数据的系统配置选项更少了;
  • 节点更清楚的记录了它们的状态,有助于诊断它们为什么不能加入集群或为什么无法选举出主节点;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值