下载工作台
企业级架构运维

多活容灾与流量调度

试读上半部分 · 解锁后可读全文

第 12 章 · 多活容灾与流量调度

本章讲解 同城双活、异地灾备、流量调度、脑裂防护,含 RTO/RPO 手算例题 与 ch18 跟练衔接。

前置:ch02 HA/DR;ch08~09;运维 ch06;跟练 ch18。


12.1 容灾等级

等级拓扑RTORPO成本
冷备异地备份手动拉4~24h1~24h
温备灾备待机30~60min5~15min1.5×
同城双活两AZ同时接流<5min0~3s2~2.5×
异地多活跨城多中心写分钟级秒~分3×+

社区电商 99.95%

年停机预算 = (1-0.9995)×525600 ≈ 262 分钟/年
推荐:同城双活 60/40 + 异地冷备(季度演练)

RPO/RTO 例题

术语例题
RPO异步复制 lag 30s → RPO≈30s
RTODNS 3min+扩容10min → RTO≈13min

事故损失粗算:GMV 500万/天 ≈ 3472元/分钟;RTO 60→15min 少损约 26万元/次(满负载极端)。


12.2 同城双活架构

        [ GSLB / DNS 60/40 ]
       /                      \
[ AZ-A cluster-a ]        [ AZ-B cluster-b ]
order×6, MySQL主         order×4, MySQL从
      \    专线/内网    /
           [ Witness ]
组件双活要点
应用无状态,镜像同源 digest
会话JWT 优先,Redis refresh
MySQL单主异步复制(写TPS250够用)
MQ3副本跨AZ
MinIOEC 4+2 跨节点

小紫云

AZ-AAZ-B
集群cluster-acluster-b
节点8C16G×38C16G×2
Ingressingress-aingress-b

12.3 流量调度

手段场景
DNS 权重常态 60/40
GSLB 健康检查3次失败摘流
Ingress 金丝雀新版 5%
应急切流A故障→100%B
# DNS 概念配置
api.shop.example.com:
  - target: ingress-a.example.com
    weight: 60
    health_check: /health
  - target: ingress-b.example.com
    weight: 40
ttl: 30  # 应急前24h降至30s
# APISIX 金丝雀
plugins:
  traffic-split:
    rules:
      - match: [{ vars: [["http_x_canary","==","1"]] }]
        weighted_upstreams: [{ upstream_id: v2, weight: 100 }]
      - weighted_upstreams: [{ upstream_id: v1, weight: 95 }, { upstream_id: v2, weight: 5 }]

健康检查层次

检查失败动作
L7/health 200摘Pod
依赖DB+Redis ping摘AZ
业务合成下单探针降级

12.4 双活容量(数值例题)

常态下单A:30 + B:20 = 50 QPS
单AZ故障B扛100%毛刺 267 QPS
单Pod安全180 QPS
B所需ceil(267/180×1.35)=2 → 工程 ≥6

原则:任一 AZ 须扛 100% 毛刺,非简单 50/50 各一半。

跨AZ RTT:同AZ <1ms;跨AZ写主 +2~5ms/跳;跨城 20~40ms 不宜同步写。


以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。