icql

架构基础_高可用架构模式

理论

详见 分布式基础-理论篇

FMEA故障分析法:

FMEA(failure mode and effects analysis,故障模式域影响分析):通过假设某个地方出现故障从而分析系统

存储高可用

存储高可用的本质:

1)数据冗余:通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用。

2)数据分片:通过数据分片,降低单个节点的存储压力

1. 数据集中式集群架构

每个节点存储的数据都是全量的,如mysql等,常见的数据集中式架构(双机架构)如下

1) 主备

主机负责实际业务,数据通过复制到备机起到备份作用,备机不承担实际业务。

2) 主从

主机负责读写操作,据通过复制到从机,从机只负责读操作。

3) 双机切换

主备、主从当主机发生故障时,都将无法进行写操作,需要进行主备切换或主从切换

4) 主主复制

两台主机互相同步数据,较少使用

2. 数据分片式集群架构

每个节点存储的数据都只有一部分,节点间的数据不同,如 elasticsearch,redis 集群等

二、计算高可用

计算高可用的本质:

部署多个任务执行节点,某个节点任务执行失败,需要有其他节点重新执行任务

三、业务高可用

1. 业务级别的高可用

对核心业务做异地多活

同城多活: 延迟很低,个位毫秒

跨城多活:延迟较高,50ms级别或更大

跨国多活:延迟很高

2. 服务级别的高可用

服务尽量无状态,多节点部署

3. 接口级别的高可用

降级:当自身业务出现故障时,保证核心业务可用,其他业务暂时降级

熔断:依赖的外部业务出现故障时,有备用方案

限流:对于突发流量进行限制,超出的部分直接拒绝处理异常返回

排队:对于高流量进行排队处理

幂等:重试请求对业务数据影响一致,返回结果一致(可重入)