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

请说明 Cassandra 中数据分片的机制,以及该机制如何支撑集群的分布式存储能力。

数据系统设计技术原理方案权衡Apache Cassandra

考察说明

考查对 Cassandra 分布式存储核心机制——一致性哈希与虚拟节点的理解。

回答思路

  1. 【回答框架 1】Cassandra 采用一致性哈希进行数据分片。每个数据行由主键(Partition Key)通过哈希函数映射到 0 到 2^127-1 的环上,每个节点负责一段连续范围,数据按哈希值落入对应节点范围,从而分布式存储。
  2. 【回答框架 2】每个节点可配置多个虚拟节点(vnode),将环划分为更多更小的片段。vnode 使数据分布更均匀,节点加入或退出时,负载均衡和迁移成本更低,也便于异构节点分配不同权重。
  3. 【回答框架 3】副本策略(如 NetworkTopologyStrategy)决定每个分片的副本放置:同一份数据会复制到多个节点,且不同机架/数据中心放置,提升容错与可用性。写入时根据一致性级别(如 QUORUM)确认副本数,读取时协调节点从多个副本合并结果。
  4. 【回答框架 4】当节点变更时,环上范围会动态调整,数据通过流式传输迁移到新节点,期间采用 Hinted Handoff 等机制补偿短暂不可用的节点,保证最终一致性。整个环的元数据由 Gossip 协议传播,客户端通过协调节点路由请求。
  5. 【关键点 1】一致性哈希将主键哈希到环上,节点负责环的连续区间。
  6. 【关键点 2】虚拟节点(vnode)提高数据均匀性与扩展性,降低迁移成本。
  7. 【关键点 3】副本策略决定数据冗余与跨数据中心放置。
  8. 【关键点 4】节点增减时自动重新分配范围并迁移数据。
  9. 【关键点 5】Gossip 协议维护集群元数据,客户端请求由协调节点路由。
  10. 【易错点 1】分片后存储位置由哈希决定,不支持按主键范围高效扫描,设计时需避免依赖范围查询。
  11. 【易错点 2】虚拟节点数过少可能导致数据倾斜,过多会增加元数据开销,需权衡。
  12. 【易错点 3】仅靠分片无法保证数据一致性,必须结合副本策略与一致性级别配置。