You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

双DC各3节点Cassandra集群单DC宕机时能否提供一致数据服务?

问题解答

答案取决于你创建Keyspace时使用的复制策略,分两种核心场景说明:

1. 使用默认的SimpleStrategy复制策略

如果你仅设置全局复制因子RF=3(例如执行语句:CREATE KEYSPACE myks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};),Cassandra会将3个数据副本随机分布在整个6节点集群中,副本大概率跨两个DC分散(比如2个在DC1、1个在DC2)。

当其中一个DC宕机时,存活DC内的副本数量会不足3:

  • 无法保证数据完整性:部分数据的唯一副本可能仅存在于宕机的DC中,存活节点没有完整数据集;
  • 无法保证强一致性:如果读一致性级别用QUORUM,需要至少2个副本响应,但存活节点可能凑不够这个数量,只能降级用ONE,但ONE可能读取到未同步的旧数据。

这种场景下,存活DC无法提供具备完整数据一致性的服务。

2. 使用NetworkTopologyStrategy复制策略

如果按数据中心分别配置复制因子(例如执行语句:CREATE KEYSPACE myks WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': 3, 'DC2': 3};),每个DC都会持有全部数据的3个完整副本。

当其中一个DC宕机时,另一个DC的3个节点拥有完整的数据集,此时只要应用层配合设置合适的一致性级别:

  • 写操作使用LOCAL_QUORUM:在存活DC内的3个副本中,至少2个写入成功才返回,保证数据写入的一致性;
  • 读操作使用LOCAL_QUORUM:从存活DC内的3个副本中读取至少2个,取最新版本,保证读取数据的一致性。

这种场景下,存活DC可以为应用提供具备完整数据一致性的服务。


内容的提问来源于stack exchange,提问作者Gajendran Ravindran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 13:57:15