视频讲解:
在前面,我们专门搭建了zk集群,在日常运维过程中也经常会被问到你们要选择几台节点来搭建zk集群,这时候你会回答几台呢?我们通过表格分析下:
如以上表格所示,因为zk搭建集群需要过半服务启动成功,集群才能进行选举和通信,所以集群节点数必须 大于等于3台 才可以,然后我们分析下,
1)当集群总节点数为3台,那么最少可用节点需要2台,可容忍失效节点数可以为1台;
2)当集群总节点数为4台,那么最少可用节点需要3台,可容忍失效节点数可以为1台;
3)当集群总节点数为5台,那么最少可用节点需要3台,可容忍失效节点数可以为2台;
4)当集群总节点数为6台,那么最少可用节点需要4台,可容忍失效节点数可以为2台;
那么我们是不是可以得出规律,假设最少可用节点为n,
5)当集群总节点数为2n-1台,那么最少可用节点需要n台,可容忍失效节点数可以为n-1台;
6)当集群总节点数为2n台,那么最少可用节点需要n+1台,可容忍失效节点数可以为n-1台;
根据可容忍失效节点数来度量的话,我们可以得出部署单数台的原因:
- 部署多台主要为了系统之间容错;
- 部署单数台可以达到相同的效果,同时能够节约服务器资源;
- 防止网络分区导致脑裂问题,以3台节点为例,如果出现1台机器由于网络延迟等因素导致分区,那么剩余2台依然可以进行leader选举,并提供服务。但是如果有4台服务节点,两两分区的话,就不能完成leader选举,也就并不能进行服务了。
不断分享开发过程用到的技术和面试经常被问到的问题,如果您也对IT技术比较感兴趣可以「关注」我