面试题答案
一键面试以 Cassandra 为例:
- 平衡方式:Cassandra 使用了一种基于最终一致性模型的策略。它允许在节点间数据复制存在一定延迟的情况下,仍然保证系统的可用性。通过调整读写策略(如
ConsistencyLevel
)来控制一致性和可用性。例如,在写入时,当设置ConsistencyLevel
为ONE
,只要有一个副本写入成功,写操作就返回成功,这极大提升了可用性,但一致性相对较弱;若设置为ALL
,则要所有副本都写入成功才返回,一致性强但可用性降低。 - 业务场景配置:
- 对一致性要求高,可用性相对可让步场景:如金融交易记录场景,要求数据准确一致。此时在写入时可设置
ConsistencyLevel
为QUORUM
或ALL
,确保多数副本或全部副本写入成功,读操作同理,确保读取到最新一致数据。 - 对可用性要求高,一致性可接受一定延迟场景:如社交平台的点赞计数场景,偶尔出现计数暂时不一致用户也能接受。此时写入和读取可设置
ConsistencyLevel
为ONE
或TWO
,在保证基本数据正确性的同时,确保系统的高可用性。
- 对一致性要求高,可用性相对可让步场景:如金融交易记录场景,要求数据准确一致。此时在写入时可设置