Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Cassandra 具有数据中心丢失容差的每个_仲裁_Cassandra_Datastax_Datastax Java Driver - Fatal编程技术网

Cassandra 具有数据中心丢失容差的每个_仲裁

Cassandra 具有数据中心丢失容差的每个_仲裁,cassandra,datastax,datastax-java-driver,Cassandra,Datastax,Datastax Java Driver,我正在寻找一些关于在3个数据中心场景中实现每个仲裁一致性的想法,并允许写入1个数据中心丢失 根据我的理解,每个_QUORUM都不能容忍数据中心丢失。只要数据中心关闭,我的所有写入操作都将失败。一种选择是使用较低的一致性级别(如“仲裁”)重试请求 我正在寻找的选择是,是否有办法删除故障DC并在剩余的2个实时数据中心上实现每个_仲裁。从服务器端看,我能想到的唯一办法是让故障数据中心的所有节点退役,这很麻烦 假设我的客户机应用程序知道某个数据中心已关闭,那么Cassandra客户机驱动程序是否有办法传

我正在寻找一些关于在3个数据中心场景中实现每个仲裁一致性的想法,并允许写入1个数据中心丢失

根据我的理解,每个_QUORUM都不能容忍数据中心丢失。只要数据中心关闭,我的所有写入操作都将失败。一种选择是使用较低的一致性级别(如“仲裁”)重试请求

我正在寻找的选择是,是否有办法删除故障DC并在剩余的2个实时数据中心上实现每个_仲裁。从服务器端看,我能想到的唯一办法是让故障数据中心的所有节点退役,这很麻烦

假设我的客户机应用程序知道某个数据中心已关闭,那么Cassandra客户机驱动程序是否有办法传入一个实时数据中心列表,因此协调器节点仅在这些数据中心上尝试实现每个_仲裁


希望您能对此有所了解。

如果您正在寻找能够在DC故障中生存的能力,为什么要使用
EACH\u QUORUM
?使用
LOCAL\u QUORUM
然后-它正是为此而设计的。

您使用LOCAL\u QUORUM重试的想法可以通过实现并将其应用于会话来实现。由于驱动程序知道它无法实现每个_quorum,因此它实际上不会尝试,并且您可以处理重试策略中的错误,而不是让应用程序代码冒泡。我已经成功地尝试了这种方法

我考虑的另一个想法是为每个DC(配置为“本地DC”)创建一个单独的会话,并针对每个DC异步执行。然后根据错误以及我可以从集群状态收集到的信息,记录警告或抛出错误

可能重复的