面试题答案
一键面试Cassandra常见读操作一致性级别
- ONE:只要集群中一个副本响应读请求,读操作就成功。适用于对读性能要求高,对数据一致性要求相对较低的场景。
- TWO:需要集群中至少两个副本响应读请求,读操作才成功。在一致性和性能之间有一定平衡。
- THREE:要求集群中至少三个副本响应读请求,读操作才成功。进一步提升一致性,但会影响一定性能。
- QUORUM:需要超过集群中副本数一半的副本响应读请求,读操作才成功。保证了较高的数据一致性。对于N个副本的集群,需要 (N/2)+1 个副本响应。
- ALL:要求集群中所有副本都响应读请求,读操作才成功。提供最高的数据一致性,但性能开销最大。
针对不同级别动态监控关键指标
- 读延迟:
- 对于所有一致性级别都至关重要。监控读请求从发出到收到响应的时间。较高的一致性级别(如ALL)可能由于等待更多副本响应,平均读延迟会相对较高;而较低级别(如ONE)读延迟理论上会较低,但可能因个别副本响应慢而有较大波动。
- 读成功率:
- 观察读操作成功的比例。一致性级别越高,因部分副本故障或响应不及时导致读失败的可能性相对越高。例如在ALL级别下,只要有一个副本不可用,读操作就可能失败。
- 副本响应时间分布:
- 特别是在较高一致性级别(如QUORUM和ALL)下,了解每个副本的响应时间分布有助于定位可能存在性能问题的副本。例如,某个副本响应时间总是明显高于其他副本,可能需要对其进行排查。
- 一致性保证程度:
- 对不同级别监控数据一致性程度。如在QUORUM级别下,监控数据是否真的满足大多数副本一致;而在ONE级别下,虽然读性能高,但可能存在数据不一致情况,可通过监控对比不同节点数据来评估。