【架构设计】高可用架构设计:SLA可用性指标、集群、副本、异地多活、容灾备份、故障隔离

张开发
2026/4/20 8:51:24 15 分钟阅读

分享文章

【架构设计】高可用架构设计:SLA可用性指标、集群、副本、异地多活、容灾备份、故障隔离
文章目录高可用架构设计全体系知识一、体系总览与核心底层逻辑1.1 核心定义与目标1.2 体系核心设计原则贯穿全体系的底层逻辑二、高可用量化标尺SLA可用性指标体系2.1 核心概念厘清SLA、SLO、SLI2.2 可用性核心量化公式与等级划分2.2.1 核心计算公式2.2.2 业界通用“N个9”可用性等级标准2.3 核心SLI指标维度不止“不宕机”2.4 SLA落地关键规范三、高可用基础基石集群与副本技术3.1 集群技术体系3.1.1 核心定义与价值3.1.2 集群核心分类与适用场景3.1.3 集群高可用核心组件3.2 副本技术体系3.2.1 副本核心作用3.2.2 副本核心类型与一致性保障3.2.3 副本部署核心策略与设计原则3.2.4 副本与集群的协同机制四、高可用核心屏障故障隔离体系4.1 故障隔离核心设计原则4.2 全维度故障隔离方案体系4.2.1 架构层面隔离从根源拆分故障域4.2.2 部署层面隔离物理/运行环境隔离4.2.3 流量层面隔离避免故障流量扩散4.2.4 数据层面隔离避免数据故障扩散4.3 故障隔离验证机制混沌工程五、高可用兜底保障容灾备份体系5.1 核心概念厘清容灾 VS 备份5.2 容灾核心量化指标5.3 容灾体系等级与部署模式5.3.1 国标容灾等级GB/T 20988-20075.3.2 业界通用容灾部署模式从低到高5.4 备份体系核心规范与最佳实践5.4.1 备份核心类型5.4.2 业界黄金法则3-2-1备份原则5.4.3 备份落地关键规范六、高可用高阶方案异地多活架构6.1 核心定义与架构演进路径6.1.1 核心定义6.1.2 架构演进路径6.2 异地多活核心架构模式单元化SET化部署6.2.1 单元化核心定义6.2.2 单元化核心分类6.3 异地多活核心技术体系6.3.1 全局流量调度体系6.3.2 数据同步与一致性体系6.3.3 故障自动切换与自愈体系6.4 异地多活核心挑战与解决方案七、高可用架构全生命周期保障体系7.1 设计阶段高可用架构评审7.2 开发阶段容错编码规范7.3 测试阶段高可用验证体系7.4 运维阶段自动化运维与可观测体系7.5 应急阶段故障应急响应体系八、体系总结与核心设计心法8.1 体系逻辑闭环8.2 核心设计心法高可用架构设计全体系知识一、体系总览与核心底层逻辑1.1 核心定义与目标高可用架构High Availability, HA是一套通过冗余、容错、隔离、自动化等技术手段最大化系统服务持续可用时长、最小化故障停机损失保障业务连续性与数据可靠性的完整架构体系。核心目标可拆解为3个层级基础层消除单点故障应对硬件/软件/网络的常规故障进阶层控制故障爆炸半径避免级联故障实现故障自愈顶级层应对地域级灾难实现业务无感知切换趋近于零停机1.2 体系核心设计原则贯穿全体系的底层逻辑冗余原则所有核心节点无单点通过多副本/多集群实现能力冗余是高可用的基石隔离原则最小化故障域限制故障影响范围杜绝级联故障是高可用的核心屏障容错原则系统具备故障容忍能力局部故障不影响整体服务可用性自动化原则故障检测、切换、自愈全流程自动化避免人工操作的延迟与失误可观测原则全链路可监控、可追踪、可告警是故障快速定位与恢复的前提平衡原则在可用性、性能、成本、复杂度之间找到最优解避免过度设计二、高可用量化标尺SLA可用性指标体系SLA是整个高可用架构的顶层设计所有技术方案均围绕SLA目标展开是高可用能力的唯一量化标准。2.1 核心概念厘清SLA、SLO、SLI术语全称核心定义体系定位SLI服务水平指标系统服务能力的可直接采集的客观量化数据度量基础SLO服务水平目标基于SLI设定的、固定周期内必须达成的可用性目标值核心目标SLA服务水平协议服务提供方与消费方签订的、包含SLO承诺与违约赔付条款的正式契约最终约束2.2 可用性核心量化公式与等级划分2.2.1 核心计算公式系统可用性 (系统总运行时长 - 计划外故障停机时长) / 系统总运行时长 × 100%关键说明计划内维护版本升级、架构调整通常不计入故障停机时长需在SLA中明确统计口径避免歧义。2.2.2 业界通用“N个9”可用性等级标准可用性等级年允许计划外停机时长月允许停机时长日允许停机时长典型适用业务场景2个999%3.65天7.2小时14.4分钟非核心内部系统、离线业务、测试环境3个999.9%8.76小时43.2分钟1.44分钟企业内部核心系统、非交易型ToB服务4个999.99%52.56分钟4.32分钟8.64秒互联网核心业务、电商、金融非交易系统、云服务基础产品5个999.999%5.26分钟25.9秒0.86秒金融核心交易系统、支付清算、电信核心网、工业控制系统6个999.9999%31.5秒2.59秒0.086秒国家级关键基础设施、航空航天、核电控制系统2.3 核心SLI指标维度不止“不宕机”高可用不仅是服务不中断更要保障服务质量达标核心SLI维度包括可用性指标服务正常响应率、请求成功率、节点存活时长占比性能指标平均响应时延、P95/P99时延、峰值吞吐量错误指标5xx错误率、4xx异常占比、超时请求占比数据指标数据一致性达标率、数据丢失率、备份恢复成功率2.4 SLA落地关键规范明确故障停机的判定标准、统计范围、排除项避免口径歧义建立分级SLA体系按业务核心度拆分核心/非核心业务设定差异化SLO平衡成本与可用性明确违约赔付机制是SLA生效的核心约束建立周期复盘机制按月/季度复盘SLO达成情况通过故障复盘持续优化架构三、高可用基础基石集群与副本技术集群与副本是高可用架构最基础的冗余实现是所有上层高可用方案的底层支撑核心解决单点故障问题。3.1 集群技术体系3.1.1 核心定义与价值集群是一组相互独立、通过网络互联的服务器节点协同对外提供统一服务对外表现为一个整体。核心价值消除单点故障单节点故障不影响集群整体服务能力水平扩展通过增加节点线性提升系统吞吐量与性能负载均衡将流量均匀分发到健康节点避免节点过载故障自愈自动剔除故障节点自动恢复节点服务能力3.1.2 集群核心分类与适用场景集群类型核心定位典型产品/组件核心高可用能力计算服务集群承载业务逻辑、API服务、微服务应用K8s集群、Spring Cloud集群、Web服务器集群无状态服务弹性扩缩容、故障自动重建、流量自动切换中间件集群承载消息、缓存、注册中心等基础组件Kafka集群、Redis集群、RocketMQ集群、Nacos集群副本同步、leader自动选举、故障节点自动下线存储集群承载结构化/非结构化数据存储MySQL集群、PostgreSQL集群、Ceph/HDFS分布式存储数据多副本冗余、故障自动切换、数据一致性保障算力集群承载AI、大数据、高性能计算任务Hadoop集群、GPU集群、Spark集群任务容错、节点故障自动重调度、数据分片冗余3.1.3 集群高可用核心组件健康检查模块TCP/HTTP/业务自定义探测是故障识别的核心负载均衡器LB四层LBLVS、HAProxy、七层LBNginx、Ingress实现流量分发与故障节点自动剔除服务注册与发现中心Nacos、Consul、etcd管理集群节点元数据实现服务地址动态更新分布式协调组件etcd、ZooKeeper基于共识协议实现集群leader选举、元数据一致性保障集群调度器K8s Scheduler、YARN负责资源调度与故障节点任务重调度3.2 副本技术体系副本是集群的核心冗余单元指同一份数据/服务的多个冗余拷贝核心解决数据丢失与服务中断双重问题。3.2.1 副本核心作用数据冗余避免单节点硬件故障导致的数据不可逆丢失故障切换主副本故障时从副本可快速升级为主副本实现服务无中断读写分离读请求分发到从副本提升系统读吞吐量降低主副本压力就近访问多地域部署副本实现用户就近接入降低访问延迟3.2.2 副本核心类型与一致性保障副本类型一致性模型核心共识协议核心特点适用场景强一致副本线性一致性/强一致性Paxos、Raft、ZAB写操作需多数副本确认后返回任意时刻所有副本数据完全一致金融交易、元数据管理、分布式锁、核心数据存储最终一致副本最终一致性Gossip协议、异步复制写操作仅需主副本确认即可返回从副本异步同步短时间内存在数据延迟互联网非交易业务、缓存、内容分发、日志系统只读副本只读一致性异步/半同步复制仅提供读服务不参与写操作与leader选举数据从主副本同步读多写少场景、报表分析、数据备份、读写分离3.2.3 副本部署核心策略与设计原则分级部署策略同机房多机架部署副本分散在不同机架避免单机架掉电/网络故障导致全副本不可用同城多可用区AZ部署副本分散在同城物理隔离的机房应对单机房火灾、断电故障异地多地域部署副本分散在不同城市应对地震、洪水等地区级灾难是异地多活的基础副本数设计黄金原则强一致集群副本数推荐为奇数3、5、7可容忍(N-1)/2个节点故障3副本容忍1个故障5副本容忍2个故障最终一致集群副本数根据业务可靠性需求设定通用场景3副本核心数据可提升至5副本3.2.4 副本与集群的协同机制自动leader选举主副本故障时集群通过共识协议自动选举新主副本无需人工干预副本自动重建副本故障不可恢复时集群自动在健康节点重建新副本恢复冗余能力数据自动均衡集群自动调整副本分布避免节点数据量不均导致的负载倾斜四、高可用核心屏障故障隔离体系故障隔离的核心目标是控制故障爆炸半径避免局部故障扩散为全系统级联故障是高可用架构的“防火墙”实现从“被动容错”到“主动防控”的升级。4.1 故障隔离核心设计原则最小故障域原则将系统拆分为尽可能小的、相互隔离的故障域单个故障域故障不影响其他域无共享原则故障域之间尽可能减少共享依赖避免共享资源成为故障扩散通道权责对等原则业务核心度越高故障隔离等级越高隔离粒度越细故障闭环原则每个故障域具备独立的容错、降级、自愈能力实现故障闭环处理4.2 全维度故障隔离方案体系4.2.1 架构层面隔离从根源拆分故障域业务域隔离微服务/DDD隔离基于DDD限界上下文拆分微服务每个微服务对应独立业务域独立部署运维核心业务与非核心业务严格拆分避免非核心业务故障影响核心链路。多租户隔离物理隔离不同租户使用独立服务器、数据库、集群隔离等级最高适用于金融、政务场景逻辑隔离同一集群内通过租户ID实现数据隔离共享硬件资源成本更低适用于通用SaaS场景混合隔离核心租户物理隔离普通租户逻辑隔离平衡成本与可用性4.2.2 部署层面隔离物理/运行环境隔离基础设施隔离地域级/可用区/机房/机架多级隔离核心服务跨可用区部署避免单点硬件故障运行环境隔离资源隔离通过KVM、Docker、K8s实现进程级隔离限制CPU、内存、IO资源避免服务间资源争抢线程池隔离为不同依赖服务分配独立线程池避免单个依赖故障耗尽整个服务的线程资源典型方案Hystrix、Sentinel进程隔离不同业务模块拆分为独立进程单个进程崩溃不影响其他进程4.2.3 流量层面隔离避免故障流量扩散流量分片隔离按用户ID/地域/业务类型对流量分片不同分片路由到独立集群/单元单个分片故障不影响其他分片发布流程隔离灰度/金丝雀发布小流量验证新版本无问题后全量发布避免全量故障蓝绿部署维护两套完全一致的集群新版本验证后一次性切流故障可秒级回滚流量管控隔离限流为每个服务/接口/调用方设置独立限流阈值避免流量突增打垮服务熔断下游服务故障时快速失败不再发起请求避免故障向上游扩散降级非核心业务故障时自动关闭非核心功能/返回缓存数据保障核心业务资源充足4.2.4 数据层面隔离避免数据故障扩散分库分表隔离按业务域/用户ID分库分表单个库/表故障不影响其他库表读写分离隔离读请求路由到只读副本写请求路由到主库避免读压力影响写服务冷热数据隔离热数据存高性能存储冷数据存离线存储避免冷数据查询影响热服务缓存与数据库隔离缓存故障时通过熔断、限流避免缓存穿透打垮数据库4.3 故障隔离验证机制混沌工程通过主动注入故障节点宕机、网络延迟、服务熔断验证故障隔离体系的有效性确保故障影响范围符合预期杜绝级联故障。五、高可用兜底保障容灾备份体系容灾备份是应对极端故障机房级/地域级灾难、数据误删、勒索病毒等的兜底方案是高可用架构的最后一道防线核心解决极端场景下业务不中断、数据不丢失的问题。5.1 核心概念厘清容灾 VS 备份维度容灾Disaster Recovery, DR备份Backup核心目标保障业务连续性应对服务中断保障数据可靠性应对数据丢失核心场景机房断电、火灾、地震、地域级网络中断数据误删、勒索病毒、硬件故障导致的数据损坏核心指标RTO恢复时间目标RPO恢复点目标核心手段多集群、多地域部署、业务切换数据拷贝、快照、离线存储5.2 容灾核心量化指标RTO恢复时间目标故障发生后系统从停止服务到恢复正常的最长允许时间RTO越短业务中断时间越短RPO恢复点目标故障发生后系统允许丢失的最长数据时间窗口RPO越短数据丢失越少高可用架构的终极目标是RTO→0、RPO→0不同容灾方案的核心差异就是RTO与RPO的达标能力。5.3 容灾体系等级与部署模式5.3.1 国标容灾等级GB/T 20988-2007将信息系统容灾能力分为6个等级从低到高覆盖从数据备份到异地实时双活的全场景T1级基本级离线数据异地备份无备用机房RTO≥7天RPO≥1天T2级备用场地支持级离线备份备用机房RTO≥36小时RPO≥1天T3级电子传输级在线数据备份异地备用机房RTO≥12小时RPO≥数小时T4级活动备份级同城双活数据实时备份RTO≥2小时RPO≥数分钟T5级实时数据备份级异地数据实时同步RTO≥30分钟RPO趋近于0T6级零数据丢失级异地双活/多活业务无感知切换RTO→0RPO→05.3.2 业界通用容灾部署模式从低到高容灾模式核心架构RTO/RPO核心优点核心缺点适用场景冷备主集群异地离线备份无备用集群故障后人工重建RTO天级RPO天级成本极低架构简单恢复时间长数据丢失量大非核心业务、离线归档数据温备主集群异地备用集群备用集群仅同步数据故障后手动切换RTO小时级RPO分钟级成本较低复杂度低切换需人工干预资源利用率低企业内部核心系统、非实时业务热备主集群同城备用集群数据实时同步备用集群承担读流量故障自动切换RTO分钟级RPO秒级切换自动化资源利用率较高无法应对地域级灾难互联网核心业务、金融非核心系统同城双活同城两个可用区集群同时对外服务数据实时同步故障自动切流RTO秒级RPO趋近于0资源利用率100%故障无感知无法应对地域级灾难延迟敏感的核心交易、支付系统异地双活/多活跨地域多个集群同时对外服务数据同步故障全局切流RTO→0RPO→0应对地域级灾难用户就近访问架构复杂度高跨地域一致性挑战大超大规模互联网业务、全国性金融服务5.4 备份体系核心规范与最佳实践5.4.1 备份核心类型全量备份完整拷贝所有数据恢复速度快占用空间大备份时间长增量备份仅备份上次备份后变化的数据占用空间小恢复需依赖全量所有增量备份差异备份仅备份上次全量备份后变化的数据恢复速度快于增量备份占用空间介于两者之间5.4.2 业界黄金法则3-2-1备份原则全球公认的备份最佳实践可应对99%以上的数据丢失场景3份数据副本除原始数据外至少保留2份备份副本总计3份数据2种存储介质数据存储在至少2种不同物理介质上硬盘、磁带、云存储避免单一介质故障1份异地离线备份至少保留1份备份副本在异地离线环境应对地域级灾难、勒索病毒攻击5.4.3 备份落地关键规范按数据核心度制定差异化备份周期核心数据每日全量每小时增量所有备份数据必须加密存储避免数据泄露定期执行备份恢复演练验证备份数据的可恢复性杜绝“备份了但恢复不了”的致命问题配合快照技术实现热备份避免备份过程中业务停机设定备份数据生命周期定期清理过期备份平衡存储成本与可靠性六、高可用高阶方案异地多活架构异地多活是高可用架构的高阶形态是集群、副本、容灾、隔离技术的集大成者核心突破单地域物理限制实现地域级故障的无感知切换同时提升全国/全球用户的访问体验。6.1 核心定义与架构演进路径6.1.1 核心定义异地多活指跨地域部署多个业务单元集群每个单元都能同时对外提供服务“活”的而非冷备/温备任意一个/多个单元故障时其他单元可快速接管故障单元的所有流量实现业务无感知恢复RTO与RPO趋近于0。6.1.2 架构演进路径单机房部署→2. 同城双活→3. 两地三中心→4. 异地双活→5. 异地多活业界最高阶形态6.2 异地多活核心架构模式单元化SET化部署单元化是异地多活的核心前提是实现跨地域高可用的核心设计。6.2.1 单元化核心定义将整个系统拆分为多个独立、闭环的业务单元SET每个单元具备完整的服务能力可独立对外提供服务单元之间尽可能减少跨单元调用每个单元只负责一部分用户的业务请求。核心特点闭环性用户请求在单元内闭环完成无需跨单元调用规避跨地域延迟对等性所有单元的架构、能力完全一致可随时扩容、缩容、切换流量隔离性单元之间完全隔离单个单元故障不影响其他单元路由确定性同一个用户的请求始终路由到同一个单元避免跨单元数据不一致6.2.2 单元化核心分类用户维度单元化按用户ID哈希/尾号/地域分片每个单元负责固定用户群体是最常用方案阿里电商单元化业务维度单元化按业务域拆分单元每个单元负责一个完整业务域适用于链路独立的场景地域维度单元化按用户地域拆分单元每个单元负责对应地域的用户请求实现就近接入6.3 异地多活核心技术体系6.3.1 全局流量调度体系异地多活的“入口大脑”实现流量精准路由与故障自动切换核心组件包括GSLB全局负载均衡基于DNS智能解析、BGP路由实现用户就近接入故障时自动切换流量到健康单元HTTPDNS替代传统DNS避免DNS劫持、解析延迟实现更精准的流量调度全局接入层统一七层流量入口实现流量染色、路由转发、灰度发布、故障切流单元内负载均衡单元内四层/七层LB实现单元内流量均匀分发6.3.2 数据同步与一致性体系这是异地多活的核心难点核心是在跨地域高延迟环境下平衡一致性、可用性、性能三者的关系。核心数据同步方案单元内封闭写核心原则“谁的用户谁负责写”每个用户的写操作只能在其归属单元内执行从根源避免跨单元写冲突强一致同步基于Raft/Paxos协议的跨地域多副本共识适用于元数据、交易核心数据保障数据零丢失最终一致同步基于数据库binlog、消息队列的异步同步适用于非核心数据、公共数据延迟低、性能好分布式数据库使用原生支持跨地域多活、数据分片的分布式数据库OceanBase、TiDB大幅降低架构复杂度公共数据处理方案商品、配置等公共数据采用“中心单元写入多单元只读同步”的方案保障一致性6.3.3 故障自动切换与自愈体系单元健康度全链路检测实时判断单元健康状态故障自动切流单元故障时全局流量调度系统自动将用户流量切换到健康单元实现业务无感知数据自动补全故障恢复后自动同步故障期间的数据保障数据一致性定期混沌工程演练注入地域级故障验证架构切换能力6.4 异地多活核心挑战与解决方案核心挑战解决方案跨地域网络延迟高1. 单元内请求闭环尽可能减少跨单元调用2. 读请求就近接入写请求归属单元执行3. 核心数据强一致非核心数据最终一致跨单元数据一致性1. 严格执行单元封闭写原则避免跨单元写操作2. 核心数据用分布式共识协议保障强一致3. 公共数据单中心写入多单元只读同步分布式事务处理1. 尽可能将事务闭环在单元内避免跨单元分布式事务2. 使用TCC、SAGA等柔性事务方案3. 基于分布式数据库实现跨单元事务强一致架构复杂度高、运维成本高1. 标准化单元部署统一架构、配置、运维规范2. 全流程自动化运维3. 完善的全链路可观测体系资源成本过高1. 仅核心业务实现异地多活非核心业务采用异地灾备2. 所有单元同时对外服务资源利用率100%七、高可用架构全生命周期保障体系高可用架构不是一劳永逸的技术方案而是贯穿系统全生命周期的完整管理体系。7.1 设计阶段高可用架构评审可用性建模基于业务SLA目标拆解各环节可用性要求计算系统整体可用性系统整体可用性各环节可用性的乘积FMEA故障模式与影响分析系统性分析所有可能的故障模式、影响、根因针对性设计高可用方案全链路单点故障排查确保核心节点无单点核心系统架构变更必须经过高可用专项评审7.2 开发阶段容错编码规范所有远程调用必须设置超时、重试、熔断机制异常场景必须有兜底逻辑服务优先采用无状态设计便于水平扩展与故障切换所有写接口必须实现幂等性避免重试、切换导致的数据重复写入开发阶段同步设计服务降级方案明确降级触发条件、逻辑与开关7.3 测试阶段高可用验证体系故障注入测试主动注入节点宕机、网络中断、依赖故障等场景验证系统容错能力混沌工程演练在预发/生产环境验证高可用架构的有效性峰值/极限压测验证系统高负载下的可用性与稳定性容灾切换演练验证切换流程的可行性与RTO达标情况7.4 运维阶段自动化运维与可观测体系全链路可观测体系覆盖基础设施、中间件、应用、业务全维度监控分级告警机制全链路追踪统一日志平台自动化运维体系CI/CD自动化部署、基于流量的自动扩缩容、故障自愈自动化变更管控体系所有生产变更必须遵循“可灰度、可观测、可回滚”原则降低变更故障风险7.5 应急阶段故障应急响应体系针对核心故障场景制定详细应急预案明确处理流程、责任人、操作步骤7×24小时OnCall值班制度核心故障分钟级响应故障复盘机制故障处理完成后必须进行根因分析制定改进措施避免同类故障重复发生定期开展应急演练提升团队故障处理能力八、体系总结与核心设计心法8.1 体系逻辑闭环整个高可用架构体系是层层递进、相互协同的完整闭环顶层标尺SLA可用性指标是整个体系的目标与量化标准所有技术方案均围绕SLA展开底层基石集群与副本技术实现基础冗余能力消除单点故障是所有高可用方案的基础核心屏障故障隔离体系控制故障爆炸半径避免级联故障是高可用的核心防控手段兜底防线容灾备份体系应对极端故障保障业务连续性与数据可靠性是高可用的最后一道防线高阶形态异地多活架构突破地域限制实现地域级故障的无感知切换是高可用架构的终极方案之一落地保障全生命周期保障体系确保高可用架构从设计到落地的全流程有效执行8.2 核心设计心法高可用的本质是风险管控不是追求绝对零故障而是通过系统性方案将故障发生概率、影响范围、恢复时间降到最低平衡是核心高可用永远是可用性、性能、成本、复杂度的平衡没有最好的架构只有最适合业务的架构预防大于治理高可用的核心是提前规避风险而非故障发生后的补救自动化是关键人工操作是高可用最大的敌人所有故障检测、切换、恢复流程必须实现自动化可观测是前提你无法保障你看不到的系统完善的可观测体系是高可用架构的核心前提

更多文章