etcd 为什么需要定期压缩历史修订版本?
围绕“etcd 为什么需要定期压缩历史修订版本”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 MVCC 无限增长导致存储膨胀与 watch 重建成本。
分布式系统 · 数据库事务面试题第 1 页,显示第 1–15 题,共找到 15 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“etcd 为什么需要定期压缩历史修订版本”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 MVCC 无限增长导致存储膨胀与 watch 重建成本。
围绕“用 etcd 实现分布式锁需要组合哪几个原语”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确事务比较创建修订、最小修订等待与租约续期的组合。
围绕“etcd 的全局递增 revision 能给客户端提供什么顺序保证”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确所有写共享单调修订号可用作全局事件排序与一致性读点。
围绕“Kafka 事务如何实现跨分区的 exactly-once 语义”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确事务协调器与事务日志保证多分区写入原子提交。
围绕“线性一致性和可串行化是一回事吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确前者约束单对象操作的实时序、后者约束多对象事务等价串行执行。
本题说明 Kafka exactly-once 的边界:内部事务保证 read-process-write 链路,消费者侧 offset 同一事务提交;外部副作用不在事务范围。给出机制、场景和失效条件,帮助判断工程取舍。
本文从投递语义角度分析 Kafka offset 提交时机。先提交再处理导致崩溃时消息丢失,先处理后提交产生重复。通过场景说明选择依据,并指出不适用事务和幂等场景。
围绕“业务数据库与 Kafka 之间为什么常用 outbox 表保证状态变更和事件发布不分裂”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明本地事务先落 outbox、再异步投递如何规避双写失败窗口。
围绕“Kafka isolation.level=read_committed 的消费者会如何处理未提交和中止事务”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明只读已提交记录、跳过中止记录及对消费延迟的影响。
围绕“Kafka 流处理为什么要把消费 offset 与输出写入放进同一事务”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明输入位点和输出结果原子提交如何形成 Kafka 内端到端语义。
围绕“Kafka 事务超时后被中止时,应用侧已经产生的外部副作用能否自动回滚”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须明确 Kafka 事务只回滚 Kafka 记录和 offset,不撤销数据库写入或远程调用。
围绕“Kafka transactional.id 如何防止同一应用旧实例继续提交事务”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明稳定身份和 epoch fencing 如何隔离僵尸生产者。
围绕“Kafka 事务生产者如何保证跨多个分区的写入要么全部可见要么全部不可见”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明事务协调与提交标记提供的原子边界。
围绕“PostgreSQL LISTEN/NOTIFY 的异步通知在事务和连接断线下有什么投递边界”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通知在提交后才投递、会话断线期间不会持久排队,不把它当作可靠消息队列。
围绕“PostgreSQL 逻辑复制能保证哪些事务提交顺序,不能把它误认成什么消息顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按事务提交顺序应用变更而非按单条 SQL 或跨发布全局消息顺序。