分布式系统的目标是提升系统的整体性能和吞吐量另外还要尽量保证分布式系统的容错性。
分布式系统 2 大设计思路:
- 中心化
- 去中心化
-
2 种角色
分布式集群中的节点机器按照角色分工,大体上分为两种角色:“领导”和“员工”。
-
角色职责
“领导”通常负责分发任务并监督“员工”,发现谁太闲了,就想发设法地给其安排新任务,确保没有一个“干活的”能够偷懒,如果“领导”发现某个“干活的”因为劳累过度而病倒了,则是不会考虑先尝试“医治”他的,而是一脚踢出去,然后把他的任务分给其他人。
-
面临的问题
最大问题是“领导”的安危问题,如果“领导”出了问题,则群龙无首。
-
地位平等
-
“去中心化”不是不要中心,而是由节点来自由选择中心
集群的成员会自发的举行“会议”选举新的“领导”主持工作。
-
面临的问题
脑裂问题。脑裂指一个集群由于网络的故障,被分为至少两个彼此无法通信的单独集群,此时如果两个集群都各自工作,则可能会产生严重的数据冲突和错误。
一般的设计思路是,当集群判断发生了脑裂问题时,规模较小的集群就“自杀”或者拒绝服务。
-
分布式
一个业务拆分为多个子业务,部署在不同服务器上
-
集群
同一业务,部署在多个服务器上