CAP/Raft、CDC 与 Outbox

共 19 题
#

1. Saga 长事务模式,拆分 + 补偿?

A Saga 需要全局锁和两阶段提交,与 XA 相同
B Saga 把大事务拆成多个子事务并配套补偿,失败时逆序执行补偿回滚,实现分布式事务的最终一致性 ✓ 正确答案
C Saga 提供强隔离性,中间状态对外不可见
D Saga 失败时无需补偿,直接终止即可
#

2. 分布式事务(Distributed Transaction)的必要性,跨库更新?

A 单机数据库事务就能解决跨库更新的原子性问题
B 分布式事务只影响性能,与一致性无关
C 跨库/跨服务更新需保证原子性,因此需要分布式事务,可按业务选择强一致(XA)或最终一致(Saga/消息表) ✓ 正确答案
D 分布式事务不需要权衡,强一致方案总是最优
#

3. CAP 三角形中的约束冲突,CP(ZooKeeper、etcd)vs AP(DNS、Cassandra)?

A ZooKeeper 在分区时保证可用性,返回任何数据
B CAP 定理说明分区时 C 和 A 可以同时满足
C Cassandra 是严格的 CP 系统,始终返回一致数据
D 分区时 CP 系统(ZooKeeper、etcd)优先一致性牺牲可用性,AP 系统(DNS、Cassandra)优先可用性允许最终一致 ✓ 正确答案
#

4. CAP 定理的精确表述,一致性、可用性、分区容忍性不可兼得?

A CAP 定理允许在分区时同时满足 C 和 A
B CAP 定理指分区发生时一致性 C 与可用性 A 不可兼得,P 是必须面对的现实 ✓ 正确答案
C 分区容忍性是可选的,系统可以不保证 P
D CAP 定理说明一致性、可用性、分区容忍性三者完全无关
#

5. Paxos 与 Raft 的差异?

A Raft 不依赖多数派,靠单个 Leader 即可
B Paxos 有显式 Leader,实现比 Raft 简单
C Raft 与 Paxos 在一致性保证上不等价
D Paxos 抽象、无显式 Leader、难实现;Raft 显式 Leader、模块化、易实现,两者都基于多数派保证一致性 ✓ 正确答案
#

6. Raft 一致性算法的角色,Leader、Follower、Candidate?

A Raft 中 Leader 处理写请求并复制日志,Follower 被动跟随,Candidate 是选举中间态,通过多数派投票选出唯一 Leader ✓ 正确答案
B Raft 中所有节点都同时处理写请求,无需 Leader
C Candidate 是最常见的节点状态
D Follower 负责向客户端返回写结果
#

7. Google Spanner 的 TrueTime(原子钟 + GPS 提供有界误差的时间区间)如何通过 commit wait 保证外部一致性(真实时间顺序与提交顺序一致)?工程代价是什么?

A commit wait 会减少提交延迟,提高性能
B Spanner 用逻辑时钟保证外部一致性,无需物理时间
C Spanner 用 TrueTime 提供有界误差时间区间,提交时等待 ε(commit wait)保证外部一致性,代价是提交延迟和昂贵的时间基础设施 ✓ 正确答案
D TrueTime 不需要 GPS 和原子钟,普通时钟即可
#

8. 混合逻辑时钟(HLC)如何用物理时钟 + 逻辑计数器在无需紧密时钟同步下提供因果序?CockroachDB/YugabyteDB 如何基于 HLC 处理读的不确定性区间(uncertainty interval)?

A CockroachDB 不需要处理不确定性区间,因为 HLC 精确
B HLC 完全依赖紧密时钟同步,时钟漂移不影响因果序
C HLC 只提供逻辑时钟,丢失物理时间信息
D HLC 用物理时钟 + 逻辑计数器提供因果序,CockroachDB 基于 HLC 处理时钟漂移导致的不确定性区间以保证一致读 ✓ 正确答案
#

9. BASE 理论(Basically Available、Soft state、Eventual consistency)的应用?

A BASE 追求强一致,与 ACID 完全等价
B BASE 指基本可用、软状态、最终一致,接受短暂不一致换取高可用与性能,常用于缓存、消息队列、NoSQL ✓ 正确答案
C BASE 不允许任何中间状态,始终一致
D BASE 只适用于关系型数据库,不适用于 NoSQL
#

10. Multi-Raft 分片共识(每个 Region/Tablet 一个 Raft 组)在工程上如何共享传输、存储引擎与心跳以降低成本?元数据管理与再平衡有哪些挑战?

A Multi-Raft 不需要元数据管理,Region 自动路由
B Multi-Raft 的每个 Region 都有独立的网络连接和存储引擎,成本高
C Multi-Raft 每个 Region 一个 Raft 组,通过共享传输、存储引擎、合并心跳降低成本,难点在元数据管理与再平衡 ✓ 正确答案
D Multi-Raft 中 Region 不会分裂或迁移
#

11. CDC 的实现,基于 binlog(WAL、Debezium)、基于触发器、基于时间戳?

A 触发器型 CDC 对写性能无影响
B 基于时间戳的 CDC 能捕获所有删除操作
C 基于 binlog/WAL 的 CDC 无侵入、实时、可捕获完整变更,是主流方案;触发器型有侵入,时间戳型无法捕获删除且实时性差 ✓ 正确答案
D binlog 解析型 CDC 会影响数据库写入性能
#

12. Flink CDC 与 Debezium 的核心差异(Flink CDC 以 Flink 作业运行、支持无锁全量+增量衔接与 exactly-once;Debezium 依托 Kafka Connect 生态)是什么?如何选型?

A Flink CDC 和 Debezium 都只能运行在 Kafka 上
B Flink CDC 以 Flink 作业运行、支持无锁增量快照与 exactly-once;Debezium 依托 Kafka Connect 生态发布到 Kafka,通常 at-least-once ✓ 正确答案
C Debezium 天然支持 exactly-once,无需去重
D Flink CDC 无法做全量增量衔接
#

13. CDC 管道如何处理 schema 演进(加列、改类型、删列)?Debezium 事件结构与 Schema Registry 兼容策略(BACKWARD/FORWARD/FULL)如何配合下游不中断?

A Schema Registry 只管理一台 schema,不处理演进
B schema 演进无需处理,下游自动适应
C Debezium 事件含 schema 与 payload,通过 Schema Registry 的 BACKWARD/FORWARD/FULL 兼容策略管理 schema 演进,保证下游不中断 ✓ 正确答案
D 加列必须用 BACKWARD 策略
#

14. Debezium 增量快照算法(按主键切分 chunk、chunk 间用低水位/高水位与 binlog 对齐,1.6+ 通过 signal 表触发)如何实现无全局锁的全量增量衔接?与旧版全局锁快照有何差异?

A 旧版全局锁快照不阻塞业务,更适合生产
B 增量快照仍会对表加全局锁,与旧版相同
C 增量快照无法捕获快照期间的变更,会丢数据
D Debezium 增量快照按主键切 chunk、用低/高水位与 binlog 对齐、经 signal 表触发,实现无全局锁的全量增量衔接 ✓ 正确答案
#

15. CDC 的消费链路,Debezium → Kafka → 下游消费?

A Kafka 在 CDC 链路中只起临时作用,不持久化
B Debezium 直接把变更写入下游数据库,无需 Kafka
C CDC 链路为源库 → Debezium 采集 → Kafka 传输 → 下游消费,Kafka 提供可靠传输与解耦 ✓ 正确答案
D 该链路只能支持单一下游消费
#

16. CDC(Change Data Capture)的概念,捕获数据库变更事件?

A CDC 与 binlog/WAL 无关
B CDC 需要应用层主动上报变更,否则无法捕获
C CDC 只能捕获新增数据,无法捕获删除
D CDC 通过解析数据库变更日志捕获插入/更新/删除事件,用于数据同步、实时分析等 ✓ 正确答案
#

17. Debezium 的工作原理与应用场景?

A Debezium 直接修改源库数据,产生变更
B Debezium 作为 Kafka Connect 连接器解析源库日志,把变更发布到 Kafka,支持断点续传,用于数据同步与实时处理 ✓ 正确答案
C Debezium 只能处理 MySQL,不支持其他数据库
D Debezium 不支持断点续传,宕机会丢事件
#

18. CDC 的一致性保证,at-least-once、exactly-once?

A exactly-once 无需任何配合,天然实现
B at-least-once 保证事件不重复
C CDC 默认多为 at-least-once,靠下游幂等去重;exactly-once 需端到端事务或幂等写入配合 ✓ 正确答案
D CDC 无法保证任何一致性
#

19. XA 协议(两阶段提交)的实现与局限?

A XA 两阶段提交不会阻塞,协调者故障也不影响
B XA 通过准备/提交两阶段实现强一致原子性,但阻塞、锁持有时长、协调者单点,性能差 ✓ 正确答案
C XA 适合高并发长事务场景
D XA 不需要事务管理器,各资源自行提交