跳到主要内容
约 5 分钟3 张卡

跨地域复制

跨地域复制把数据副本放到不同地域。本文比较同步、异步、多地写入与故障域分布。

1. 面试核心​

先记住这几条,再读正文
  • 同步复制延迟。 写入等待远端确认时,延迟包含远端通信与持久化耗时。
  • 单主异步复制。 单主异步复制提供统一写入顺序,但远端提升存在数据丢失窗口。卡 · 综合题
  • 多地写入。 多地本地写入减少远端等待,同时引入并发冲突。
  • 副本与故障域。 多数派按投票节点计算,地域数量本身不足以证明容灾能力。卡 · 投票副本与地域故障域
  • 冲突识别。 版本向量可识别因果与并发,标量时间戳只提供排序信息。卡 · 版本向量示例

2. 物理距离与延迟​

写入若等待远端副本确认,就需支付相应网络往返。存储刷新和抖动也会影响尾延迟。增加地域后,实际延迟取决于写入等待哪些副本。

客户端离 Leader 很远时,请求入口也增加耗时。就近入口可转发请求,但写入路径仍受拓扑约束。

3. 单主跨地域​

单主为同一数据提供一个写入入口。远端副本可异步复制并承接允许陈旧的查询。异步副本落后时,关键读取可回主地域。

单主也可采用同步复制。主的数量与确认方式是两个独立维度。

异步副本提升时,尚未复制的确认写入会丢失。数据风险应根据最后安全日志位置核对。业务允许的范围由 RPO 约束。

4. 同步多地域复制​

跨地域共识组在规定的法定集合确认后提交。已提交数据的保留依赖协议、持久性和故障模型。继续写入还需要剩余投票节点形成多数。

4.1 投票副本与地域故障域​

五个投票副本需要三票。若三地分布为 3、1、1,第一地域故障会失去多数。虽然只丢一个地域,集群仍会停写。

若分布为 2、2、1,任一地域故障后至少剩三票。该结论假设剩余节点互通且日志完整。接管地域还需有足够容量。

普通 Raft 的投票节点保存日志。产品若提供特殊见证节点,应按该产品协议核对。仅有选票并不自动代表存在可恢复的数据副本。

5. 多主写入​

每地独立确认本地写入,可省去远端等待。分区恢复后,同一对象的并发版本需要合并。

LWW 按时间或版本规则选出一个值,会丢弃落选更新。CRDT 支持特定数据类型的合并。库存非负与全局唯一等规则仍需额外约束。

可按业务键分配 home region。不同数据在不同地域写入,同一数据保持单写所有者。

6. 版本与并发识别​

版本向量为每个来源记录计数。逐项比较后,若一个向量全不小于另一个,它包含后者的历史。至少一项更大时,前者是后继版本。

6.1 版本向量示例​

两个地域 A、B 共享版本 (1,1)。断网后,A 更新得到 (2,1),B 更新得到 (1,2)。两者各有一项更大,因此属于并发版本。

合并时先保留双方信息,计数取逐项最大值。若 A 再生成合并后的新版本,可得到 (3,2)。具体值如何合并,仍由数据类型或业务规则决定。

单个 Lamport 时钟可让因果先后对应数值先后。反过来,数值更大并不能证明存在因果依赖。墙上时间的大小也无法独立识别并发。

7. 故障转移​

主地域失联后,需先隔离旧写入权再接管。DNS、长连接和业务验证见故障转移。

旧地域恢复后先追平权威数据,再评估回切。两地历史分叉时,应按协议核对冲突数据。

8. 数据驻留​

允许存储和处理数据的地域,应按数据类别明确配置。限制范围同时覆盖正文、备份、日志和遥测。

架构图应标出跨地域数据流。控制面共享元数据时,也需检查字段是否含敏感信息。

9. 恢复演练​

演练应覆盖地域断网、复制落后和流量仍指向旧主。核对最后安全位置、实际丢失记录与重复请求。

多主系统还需验证冲突合并。单主系统需验证写入隔离和追赶。实际恢复时间与数据窗口用于对照目标。

10. 常见问题​

10.1 两地三中心的容错范围​

容错能力来自副本协议与票数分布。拓扑名称无法说明哪侧可写。还需确认数据完整性、切换路径和接管容量。

10.2 多活与写入所有权​

11 · 面试题卡片​

11.1 跨地域部署如何选择同步复制、异步复制和多主写入​

出现公司:字节跳动、百度、美团、滴滴

题型:综合题

考察重点

  • RTT、quorum、RPO 与可写性。
  • 单主、同步共识与多主冲突。
  • fencing、切流、数据驻留和恢复演练。

相关内容:物理距离与延迟至恢复演练。

参考回答

单主异步复制适合统一写入顺序,并接受明确 RPO 的数据。

同步跨地域提交降低已确认写入的丢失风险,但增加远端等待。多地本地写入减少等待,却需要合并并发版本。

选择还需检查票数分布与故障域。五副本按 3、1、1 分布时,丢掉三票所在地域就会停写。切换需隔离旧写入权,并验证数据位置与接管容量。

11.2 五个投票副本分布在三个地域,为什么仍可能无法容忍单地域故障?​

出现公司:暂无已核验的公开来源(本站自测)

考察重点:多数票、3/1/1 与 2/2/1 分布。

相关内容:投票副本与地域故障域。

参考回答

容错取决于票数分布。

3、1、1 分布中,三票所在地域故障后只剩两票。2、2、1 分布丢任一地域后仍有三票。继续服务还需剩余节点互通、日志完整且容量足够。

11.3 版本向量怎样识别并发,时间戳更大能否证明因果先后?​

出现公司:暂无已核验的公开来源(本站自测)

考察重点:逐项比较、并发版本与合并语义。

相关内容:版本向量示例。

参考回答

版本向量按各来源计数逐项比较。

(2,1) 与 (1,2) 各有一项更大,说明更新并发。(3,2) 则包含双方历史。标量时间戳只给出数值顺序,大小无法独立证明因果关系。合并值仍需业务规则。

12. 参考资料​