核心复杂度在于:任务管理

  • 哪些服务器可执行任务
    • 策略1:都可以
    • 策略2:只有部分机器可以,机器角色不同
  • 任务如何重新执行

架构

主备

image.png

主从

image.png

集群

对称集群

image.png

非对称集群

image.png

zookeeper为例:

  • 任务分配:没有一个专门的任务分配器,每个server都是任务分配。Follower角色收到请求后,如果是写请求就转发给leader,如果是读请求就自己处理
  • 角色指定:zookeeper采用ZAB算法来选取leader,当leader故障后,所有Follower停止服务,开始进行选举,选举出新的Leader后才继续对Client提供服务