MST

星途 面试题库

面试题:分布式系统下分布式数据库的一致性与可用性权衡及实践

在分布式数据库应用实践中,一致性和可用性往往需要进行权衡。以你熟悉的一种分布式数据库为例,说明它是如何在一致性和可用性之间进行平衡的,以及在实际业务场景中,如何根据业务需求来配置相关参数以达到合适的平衡点。
45.6万 热度难度
后端开发分布式系统

知识考点

AI 面试

面试题答案

一键面试

以 Cassandra 为例:

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