写在前面
上一篇必须理解的分布式系统中雷同的集群技术及原理分享了大多数投票机制,由于昨晚太晚了,最后就抛出了一个问题,希望大家下去总结一些它的优缺点,所以该篇就来补充说明一下。
优点
大多数投票机制延迟取决于最快的服务器,即等待数据备份完成的等待时间取决于最快的follower,比如副本因子是3,header占据1位,再有1位最快的follower同步完成,就满足大多数了。
缺点
大多数(n+1)的节点挂掉就无法选举leader,从而整个集群彻底失去可用性,比如:为了冗余单点故障,通常需要三个节点备份数据,但是当其中两台挂掉时,整个集群就挂了。仅仅靠冗余数据来避免单点故障是不够,通常对磁盘空间需求量为2n+1倍,这样导致吞吐量也会下降2n+1倍,这种高昂的存储方式并不适合存储原始数据,这就是为什么quorum算法更适合共享集群配置数据,如zookeeper,这也是kafka为什么要引入一个同步状态备份集合(ISR),通过降低所需的备份数据而带来额外的吞吐量和磁盘空间,从而提高kafka处理海量实时数据的能力。
写在最后
如果同学们有更好的意见,欢迎评论区交流讨论,共同学习,一起进步。