同步与异步复制的分界
两者的分界在于主机写入的确认时机。同步复制(Synchronous Replication)要求目标端确认写入后,源端才向主机返回写成功,因此任何时刻副本与源端一致,RPO 接近零,代价是每笔写入的时延至少增加一个链路往返时延(RTT)。异步复制(Asynchronous Replication)在源端本地写入完成即向主机返回成功,数据在后台按顺序传输到目标端,主机性能基本不受影响,但副本始终落后一段时间,RPO 大于零且随积压量变化。
基本信息
| 写入确认 | 同步需目标端确认;异步本地完成即返回 |
|---|---|
| RPO | 同步接近零;异步取决于积压量与传输速率 |
| 主机时延 | 同步每笔写入增加约一个往返时延;异步基本无影响 |
| 距离约束 | 同步通常限于同城;异步可跨地域 |
| 链路敏感度 | 同步怕抖动与突发时延;异步怕平均带宽不足 |
| 中断表现 | 同步写入受限或按策略降级;异步持续积压 |
典型使用场景
- 同城双中心的核心交易库,用同步复制满足零数据丢失要求
- 跨地域容灾,链路成本敏感时用异步复制换取更低的专线投入
- 报表与归档类数据变化量小,异步复制即可满足恢复目标
- 批处理与大数据写入峰值高,异步避免把处理窗口拖长
- 混合架构:同城同步、异地从同城站点再异步级联
- 容灾演练中临时把同步降级为异步,验证断链时的业务表现
对比要点
| 维度 | 同步复制 | 异步复制 |
|---|---|---|
| 确认时机 | 目标端确认后才返回写成功 | 本地写入完成即返回 |
| 数据丢失窗口 | 接近零,取决于确认点定义 | 分钟级或更大,随积压变化 |
| 主机性能影响 | 显著,时延增加至少一个往返时延 | 很小 |
| 适用距离 | 同城,通常数十公里内 | 跨地域,数百至上千公里 |
| 链路中断 | 写入受限或策略降级 | 持续积压,落后时间上升 |
| 实现复杂度 | 较高,需要仲裁与降级策略 | 相对简单 |
同步复制还有确认粒度的差异:有的产品在目标端写入高速缓存后即返回确认,性能较好但断电时仍存在极小窗口;有的产品要求目标端落盘后才确认,RPO 更严格但时延更高。选型时应向厂商确认确认点的具体定义,不能只看功能名称。
同步复制会把链路抖动直接放大为主机写入时延,业务侧表现为超时率升高或吞吐骤降。必须事先定义降级策略:链路异常时自动转为异步、暂停复制还是限制写入,并明确每种策略对应的数据风险与恢复动作。
写入路径对比
写入路径对比
# 同步:主机写 A -> 源端写 A -> 传到目标端 -> 目标端写 A -> 目标端确认 -> 源端确认 -> 主机继续
# 异步:主机写 A -> 源端写 A -> 立即返回主机 -> 后台按序传输 -> 目标端写 A
# 结论:同步的 RPO 由确认点决定,异步的 RPO 由积压量与传输速率共同决定