如何设计高可用架构
高可用复杂度模型
计算高可用
任务分配
定义
将任务分给不同的服务器执行
复杂度分析
- 增加“任务分配器”节点,可以是独立的服务器,也可以是 SDK
- 任务分配器需要管理所有的服务器,可以通过配置文件,也可以通过配置服务器(例如 ZooKeeper)
- 任务分配器需要根据不同的需求采用不同的算法分配
- 任务分配器需要监控业务服务器的状态,在故障时进行切换
高性能任务分配考虑的是正常处理,高可用任务分配考虑的是异常处理
设计关键点
案例
任务分解
定义
将服务器拆分为不同的角色,不同服务器处理不同业务
复杂度分析
- 增加“任务分解器”节点,可以是独立的服务器,也可以是 SDK
- 任务分解器需要管理所有的服务器,可以通过配置文件,也可以通过配置服务器(例如 ZooKeeper)
- 任务分解器需要根据不同的需求采用不同的算法分配
- 任务分解器需要监控业务服务器的状态,在故障时进行切换
- 需要设计拆分任务的方式,任务分解器需要记录“任务”和“服务器”的映射关系