《从 0 开始学架构》学习归整(十二)如何设计计算高可用架构?

内容纲要

核心思想

高可用架构的核心思想:通过增加服务器来达到计算高可用。

复杂度

任务管理

  • 哪些服务器可以执行任务
    1. 每台服务器都可以执行任务
    2. 特定的服务器执行任务(服务器故障后,选举出新的服务器作为执行者)
  • 任务如何重新执行
    1. 保证任务分配到健康服务器(故障时执行失败的任务不做处理)
    2. 保证任务处理完成(使用任务执行状态反馈机制,根据状态决定是否需要重新将任务分配到其它服务器执行)

常见的计算高可用架构

主备

主备架构的主机提供服务;备机处于就绪状态,不提供服务。

主备

详细设计

  • 主机
    • 执行所有计算任务
      • 主机故障时,任务分配器不分配任务给主机(服务处于 不可用状态)
        • 如果主机恢复,任务分配器继续将任务分配给主机
        • 如果主机不可恢复,需要切换备机为主机
          • 任务分配器将任务分配给新主机
          • 为了保持主备架构,需要重新加入新的备机
  • 备机
    • 冷备
      • 原理:备机上的配置等都准备好,但服务系统未启动(只启动服务器)
        • 切换为主机时,需要启动(人工)服务系统,再切换任务分配器到当前主机
      • 优点:节省一定资源
      • 缺点:主备切换时操作较麻烦
    • 温备(推荐)
      • 原理:备机上启动服务系统,只是不对外提供服务
        • 切换为主机时,只需切换任务分配器指向到当前主机
      • 优点:主备切换简单
      • 缺点:略微浪费资源

特点

结构简单,但故障响应恢复时间不稳定。人工成本高,且操作失误风险大。

主从

主从架构中,从机也需要执行任务(主机、从机可能根据业务执行不同任务)。

主从

详细设计

  • 主机
    • 执行部分计算任务
      • 主机故障时,分配器始终发任务给主机(不管执行结果)
        • 如果故障恢复:分配器继续分配策略
        • 如果故障不可恢复:从机升级为主机,增加新从机,从机就绪后,分配继续
  • 从机
    • 执行部分计算任务
      • 主机故障不可恢复时升级为主机,并加入新从机

特点

主从架构从机执行任务的特点提高了硬件资源利用率,但任务分配复杂度上升。人工成本高,且操作失误风险大。

集群

集群主要设计目的是提供高可用的同时降低人工操作带来的后果。根据集群中角色不同分为对称集群和非对称集群。

对称集群

又称负载均衡集群。通常不同机器都有执行所有或者部分任务的能力。

对称集群

详细设计

设计关键

  • 任务分配器的分配策略
  • 任务分配器的服务器状态感知
    • 服务器状态
    • 任务执行状态(执行时间等)

执行流程

  • 正常情况
    • 任务分配器将不同的任务分配给不同的服务器
  • 故障情况
    • 故障时:任务分配器不再分配任务给故障服务器,转而分配给正常的其它服务器
    • 故障恢复后:任务分配器重新给恢复的机器分配任务

非对称集群

只有特定角色能够执行特定的任务(不同角色执行不同的任务)。

非对称集群

详细设计

设计关键

  • 任务分配器设计更加复杂
    • 划分不同类型任务
    • 分配不同任务给不同角色
  • 角色分配策略时间复杂(算法复杂:ZAB、Raft 等)

执行流程

  • 初始化
    • 通过某种方式觉得节点角色(选举 Master 等)
  • 运行态
    • 任务分配器分配不同任务给不同角色
  • 故障态
    • Master 故障:重新选举 Master
    • Slave 故障:剔除故障 Slave

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注