Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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
Java Cassandra-监控多个数据中心之间的连接_Java_Cassandra_Client_Datastax Java Driver - Fatal编程技术网

Java Cassandra-监控多个数据中心之间的连接

Java Cassandra-监控多个数据中心之间的连接,java,cassandra,client,datastax-java-driver,Java,Cassandra,Client,Datastax Java Driver,假设我们有3个地理上分布的数据中心A、B、C。在每一个数据中心中,都有一个Cassandra集群正在运行。现在假设DC A不能再和B和C闲聊了 使用本地\u QUORUM写入A,仍然可以满足要求-但它们将不再传播到B和C;反之亦然 这种情况可能会有一些非常灾难性的后果 我要寻找的是一些关于如何快速确定DC A已与其他数据中心“隔离”的提示(使用本机Java驱动程序) 我记得读过关于推送通知的文章,但我似乎记得它们只涉及本地集群的状态。有人有什么想法吗?谢谢。首先要注意的是,如果A无法再连接到B和

假设我们有3个地理上分布的数据中心A、B、C。在每一个数据中心中,都有一个Cassandra集群正在运行。现在假设DC A不能再和B和C闲聊了

使用
本地\u QUORUM
写入A,仍然可以满足要求-但它们将不再传播到B和C;反之亦然

这种情况可能会有一些非常灾难性的后果

我要寻找的是一些关于如何快速确定DC A已与其他数据中心“隔离”的提示(使用本机Java驱动程序)


我记得读过关于推送通知的文章,但我似乎记得它们只涉及本地集群的状态。有人有什么想法吗?谢谢。

首先要注意的是,如果A无法再连接到B和C,则会在恢复网络连接时存储并发送提示。因此,对于不能持续很长时间的停机,已经有了安全机制,您不需要做任何事情

对于较长时间的停机,最佳做法是在此类停机后使用repair命令同步副本

这就是说,如果您正在寻找确定DC间通信何时中断的方法,您有几种选择

1) 使用诸如Datastax Opscener之类的工具来监视集群状态,该工具将自动发现此类事件何时发生并记录它们。我也相信您能够设置触发事件,但我不是Opscenter工作原理方面的专家

2) 使用Java驱动程序的公共集群寄存器(Host.StateListener listener)注册要在节点关闭事件中调用的函数,然后可以确定整个DC何时关闭


3) 通过JMX跟踪每个DCs上的当前状态,这将允许您查看每个数据中心对所有机器的当前可用性的看法。您可以直接或通过nodetool状态执行此操作。

@RussS。。我认为第(2)点在三台主机都无法到达时不起作用


例如,我实现了状态侦听器,并从本地计算机指向集群。。我可以看到,当节点上升/下降时,侦听器会被调用。。但是当我拔下以太时,我看不到这个侦听器被调用。我的目标是,如果DC认为它是孤立的,它将自动停止接受某些写入。2号看起来很有趣。