手把手教你用ETCD

一句话概括的话:ETCD 是一个基于 RAFT 的分布式 KV 存储系统。一个 ETCD 集群通常是由 3、5、7 之类奇数个节点组成的,为什么不选择偶数个节点?在集群系统中为了选出 LEADER 节点,至少要有半数以上的节点达成共识,举例说明:

  • 当集群有 3 个节点的时候,至少要有 2 个节点达成共识,最多容灾 1 个节点。
  • 当集群有 4 个节点的时候,至少要有 3 个节点达成共识,最多容灾 1 个节点。
  • 当集群有 5 个节点的时候,至少要有 3 个节点达成共识,最多容灾 2 个节点。

如上可见当节点数是偶数个的时候,系统的容灾能力并没有得到提升,所以节点数一般选择 3、5、7 之类的奇数,至于具体选择多少的话,一般推荐 3 或者 5 比较合适,太少的话系统没有容灾能力,太多的话 LEADER 节点的通信任务会变得繁重,影响性能。

继续阅读