核心复杂度在于:任务管理
- 哪些服务器可执行任务
- 策略1:都可以
- 策略2:只有部分机器可以,机器角色不同
- 任务如何重新执行
架构
主备
主从
集群
对称集群
非对称集群
zookeeper为例:
- 任务分配:没有一个专门的任务分配器,每个server都是任务分配。Follower角色收到请求后,如果是写请求就转发给leader,如果是读请求就自己处理
- 角色指定:zookeeper采用ZAB算法来选取leader,当leader故障后,所有Follower停止服务,开始进行选举,选举出新的Leader后才继续对Client提供服务