面试题答案
一键面试基础因素
- 复制因子(Replication Factor):定义了每个数据副本在集群中的数量。
- 数据中心(Data Centers):Cassandra支持多数据中心部署,数据中心的规划影响数据的物理分布和可用性。
- 复制策略(Replication Strategy):决定数据副本在集群节点间的放置方式,常见策略有简单策略(SimpleStrategy)和网络拓扑策略(NetworkTopologyStrategy)。
- 分区键(Partition Key):用于决定数据如何在节点间分区。
对系统性能和数据分布的影响
- 复制因子
- 性能:复制因子增加,读性能可能因需要协调更多副本而降低,但写性能可能因副本增多而有一定开销。同时,系统容错能力增强,因为更多副本可在节点故障时提供数据。
- 数据分布:更多副本意味着数据在更多节点上存在,增加了数据冗余,确保数据在节点故障时的可用性。
- 数据中心
- 性能:多数据中心部署可提高系统的可用性和容错性,跨数据中心的数据读取可能因网络延迟而性能降低,数据中心内的读取性能通常较高。
- 数据分布:数据可按数据中心进行划分和复制,网络拓扑策略允许为每个数据中心定义不同的复制因子,以适应不同数据中心的重要性或可用性需求。
- 复制策略
- 简单策略:
- 性能:简单策略按顺序在节点上放置副本,适合开发和测试环境。在生产环境中,由于没有考虑网络拓扑,可能导致性能问题,如跨机架或数据中心读取。
- 数据分布:副本均匀分布在节点上,但可能不符合实际网络拓扑结构,导致数据分布不合理。
- 网络拓扑策略:
- 性能:考虑网络拓扑,可优化数据读取路径,减少跨数据中心或机架的读取,提高性能。
- 数据分布:根据数据中心和机架信息放置副本,确保数据在不同物理位置都有副本,提高数据的可用性和容错性。
- 简单策略:
- 分区键
- 性能:合理选择分区键可确保数据均匀分布在节点上,避免数据热点(某些节点负载过高),提高读写性能。如果分区键选择不当,可能导致数据倾斜,影响系统整体性能。
- 数据分布:分区键决定数据在哪个节点上存储,通过哈希函数将数据分配到不同节点,良好的分区键设计能保证数据均匀且合理地分布在集群节点中。