分布式存储的节点个数为什么必须是奇数

Posted Linux 编程技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式存储的节点个数为什么必须是奇数相关的知识,希望对你有一定的参考价值。

为什么zoo-keeper 的节点必须是奇数个, 或者分布式存储的节点必须是奇数个

  1. 系统要求节点获得大多数支持时才可以更新数据,当集群脑裂时, 如果小集群的节点数相等,那么都没有大多数的支持,也就无法提供服务。
  2. 当集群恢复时,必须以大多数的小集群去覆盖少数的小集群, 如果平分了集群,则无法恢复数据

分布式存储的目标和不可能三角CAP

CAP很多人都知道,图片也很清除了。这里不多说

分布式的算法 Raft 简介

Raft 涉及的阶段

  1. 选举: 每个集群都要有领导节点。选举等待超时后, 节点向其它节点拉票, 得到majority票的节点成为领导节点
  2. 二段提交: 领导节点接受更新请求,并保存到binlog, 然后同步binlog 到其它节点, 同步成功之后。领导节点提交,然后通知其它节点提交
  3. 心跳超时: 领导节点定时向所有节点发送心跳,收到心跳后,重置心跳超时,如果心跳超时,则节点会发起新的选举

Raft 的流程

1 -> 2 -> 3 -> 1 循环

心跳办法, 有java的 jgroups

最后raft 官网

https://raft.github.io/

以上是关于分布式存储的节点个数为什么必须是奇数的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper简介与集群搭建

分布式存储支持多节点,节点是啥,一个磁盘还是一个主控?

为什么zookeeper的节点配置的个数必须是奇数个

zookeeper 介绍与环境搭建

GlusterFS分布式存储系统

抚州云动洛希云丨什么是分布式存储?Filecoin的深入研究(下)