数据岗位面试题更新 2026-08-05

请说明 Cassandra 在面对节点故障时的应对策略、数据恢复流程,以及系统提供了哪些容错机制来保障数据可用性与一致性。

数据风险判断技术原理问题排查Apache Cassandra

考察说明

考查对 Cassandra 分布式架构中故障处理与容错机制的理解。

回答思路

  1. 【回答框架 1】Cassandra 采用无主节点架构,所有节点对等。通过 Gossip 协议检测节点状态,节点故障后,协调者会停止将读写请求路由到故障节点,并将请求定向到其他副本节点,保证服务不中断。
  2. 【回答框架 2】数据恢复依赖于副本机制。每个数据键根据一致性哈希分布到多个节点,默认复制因子为 3。故障节点的数据可通过修复机制(如 hinted handoff 和 read repair)从其他副本节点获取,或在节点重启后进行流式传输恢复。
  3. 【回答框架 3】容错机制还包括:snitch 用于感知网络拓扑以实现机架感知的副本放置,提高跨机架容错性;动态 snitch 可绕过性能不佳的节点。此外,hinted handoff 在短时间内暂存写操作,避免数据丢失。
  4. 【回答框架 4】一致性级别(如 QUORUM、LOCAL_QUORUM)控制读写所需确认的副本数,以平衡可用性与一致性。在故障场景下,可通过调整一致性级别来优先保证可用性。
  5. 【回答框架 5】针对永久性故障,可通过添加新节点或重建节点来恢复。使用 nodetool repair 定期进行数据同步,确保所有副本一致性。
  6. 【关键点 1】Cassandra 无主架构和 Gossip 协议实现故障检测,请求自动路由到可用节点。
  7. 【关键点 2】副本机制(默认复制因子 3)是数据恢复的基础,配合 hinted handoff 和 read repair 确保一致性。
  8. 【关键点 3】Snitch 和机架感知放置提升跨机架容错。
  9. 【关键点 4】一致性级别(如 QUORUM)用于在可用性和一致性之间权衡。
  10. 【关键点 5】nodetool repair 用于定期修复和最终一致性保障。
  11. 【易错点 1】不要认为故障转移绝对一致,最终一致性模型下,数据恢复可能延迟。
  12. 【易错点 2】hinted handoff 只在故障短暂有效,长时间故障可能丢弃提示,需依赖修复机制。
  13. 【易错点 3】一致性级别选择不当,例如使用 ONE 可能牺牲一致性,需根据业务需求权衡。