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通信时,会失败
因篇幅问题不能全部显示,请点此查看更多更全内容