Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Cassandra cross dc提供高可用性_Database_Cassandra - Fatal编程技术网

Database Cassandra cross dc提供高可用性

Database Cassandra cross dc提供高可用性,database,cassandra,Database,Cassandra,我们在1个DC中有一个3节点的Cassandra群集 我们还有另一个DC(在同一个城市)和另一个Cassandra群集(但这台机器上没有安装Cassandra) 因此,我们只希望在发生(直流断电、火灾、水浸等)的情况下实现高可用性 根据文档,cassandra中的DC是合乎逻辑的,其主要目的是更接近客户,但我们不想要这个功能 所以,在这种情况下,我应该将集群拆分为多个DC还是使用1个DC? 谢谢我建议您将集群分为两个数据中心,这非常符合您的要求,DC意味着数据的逻辑分离,但它也受真实物理DC的启

我们在1个DC中有一个3节点的Cassandra群集 我们还有另一个DC(在同一个城市)和另一个Cassandra群集(但这台机器上没有安装Cassandra) 因此,我们只希望在发生(直流断电、火灾、水浸等)的情况下实现高可用性 根据文档,cassandra中的DC是合乎逻辑的,其主要目的是更接近客户,但我们不想要这个功能 所以,在这种情况下,我应该将集群拆分为多个DC还是使用1个DC?
谢谢

我建议您将集群分为两个数据中心,这非常符合您的要求,DC意味着数据的逻辑分离,但它也受真实物理DC的启发,因此它也是为高可用性而设计的

根据您的数据和需求,您可以想象每个数据中心可能有3个副本,使用本地仲裁进行读/写,因此您的客户端应用程序只需要每个数据中心有2个实时副本即可继续运行

一致性、高可用性和分区容错性之间的权衡取决于节点/数据中心的数量、复制系数和一致性级别

我认为多数据中心对您来说是一个不错的选择

这里有一个链接,可以帮助您理解复制因子、一致性级别和高可用性之间的关系


我希望这有助于

对于像Cassandra这样的分布式数据库来说,Multi DC是一个好主意。它提供了许多好处,如可用性、容错性和低延迟。它还将有助于在灾难性的情况下进行备份和恢复。如果要在现有群集中添加另一个DC,可以通过以下过程轻松添加:-

。然而,决定你想做什么的是你自己


谢谢你,我的朋友!但问题是,我们在cassandra中已经有一些密钥空间,具有复制因子1,并且没有针对多DC的任何snitch选项,因此重新创建此密钥空间将是混乱的。不客气,我理解,但如果复制因子为1,您将无法获得可用性,我认为您将不得不面对混乱,并一次性永久处理它。