| 分布式中心化和去中心化思想 
 1.中心化思想:* 一个领导多个干活的
 * 领导负责将任务分配给合适的人
 * 当领导发现某个干活的存在故障时,及时剔除该成员,并替换上候补成员
 存在问题:领导发生故障,则系统崩溃解决方案:master-slave
 * 当master发生故障时,slave直接接管master的工作
 
 2.去中心化思想:
 * 没有领导和干活的区别,地位平等
 * 当某个模块出现问题时,仅仅局限于当前模块,而不影响全局
 脑裂- master发生问题之后,自动恢复,此刻存在两个master,干活的不知道该听谁的
 解决方案:* 选举机制
 - master和slave之间保持通信,如果master发生故障,slave接收消息并通知下面成员
 - 成员跟master和slave保持通信,当master发生故障并接收到slave通知时,开启选举机制,票数大于总数的一半,则slave升级成master,并将master干掉
 - 被替换的master被修复后,自动转换成slave
 * 租赁机制
 - 既然slave已经升级成了新的master了,将会重新获取lease(租赁)权
 - 老的master的lease则过期,与monitor通信时,会失败
 
 |