奇数和脑裂

本文探讨了分布式集群中采用奇数节点而非偶数的原因,包括避免单点风险、最大化容错、节省资源和防止脑裂问题。通过分析谷歌Borg架构,指出在满足最大容错和防止脑裂的前提下,奇数节点可以更好地平衡容错和性能。
摘要由CSDN通过智能技术生成


最近看到下面这样一张谷歌 Borg 的架构图,无意中数了下 BorgMaster 的图块层数,发现是 5 层。

在这里插入图片描述

那么,值得思考的问题是: 为什么是 5 层呢 ? 可以是其他数量么? 可以是偶数么?


1、单点风险

所谓单点风险就是单服务实例运行所带来的风险。由于没有备份,那么如果这个实例挂了,就无法提供服务。
而对于任何服务器来说,都是存在故障的可能的,

因此生产环境中,应该尽可能避免单点风险。即类似于上图的 BorgMaster 这种服务节点,是不可能单例提供服务的。


2、最大容错

所谓最大容错,是指一个集群最多可以容忍死亡多少个实例。
假如只部署 2 个 zk 进程实例,当其中一个 zk 进程实例挂了后,那么剩下的那个进程实例并不能构成一个 quorum 的大多数。
因此 2 个 zk 进程实例构成的集群,其最大容错为 0 ,
而 1 个 zk 进程实例,其死亡容忍度自然也是 0,
这就意味着 ,2 个实例 和 1 个实例 的最大容错并没有区别。

另外,部署 2 个实例甚至比单点模式还更不可靠,因为 2 个实例其中一个不可用的可能性比 1 个实例不可用的可能性还大。

因此搭建 2 个实例的集群是不合适的。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值