cassandra客户端收到了重复的事件

时间:2015-03-17 18:05:38

标签: datastax cassandra-2.1

我使用cassandra 2.1.2和datastax cassandra-driver-core-2.1.2。这是一个奇怪的问题:当创建密钥空间(或创建,删除表)时,我的一些客户端收到了重复的事件,大约200多次。我的群集和我的客户在不同的地方(不是在一个局域网中)。 这会导致很多问题,一旦客户端收到这样的事件,它应该刷新模式,并从system.keyspaces获取所有模式信息,等等。最后,它还刷新了NodeNndTokenMap。所有这些操作都可能导致一些数据传输,一秒内200多个事件是可怕的。所以任何人都知道为什么&怎么预防?

感谢您阅读本文。

1 个答案:

答案 0 :(得分:0)

当你提及"我的一些客户收到重复的事件"时,我假设您有多个群集实例,这是正确的吗?如果您只有一个Cluster对象并且您正在收到多个事件,我想知道这是否是一个bug。 java驱动程序只会为每个Cluster实例订阅1个连接(命名为' Control Connection')到架构,拓扑和节点状态更改。该连接最初是建立在您的一个联系点上的(如果连接丢失,它将选择群集中的另一个节点)。

如果不了解有关配置的更多信息,我会考虑以下内容:

  1. 遵循4 simple rules,即每个应用程序(JVM)仅创建1个集群实例。
  2. 如果您想阻止1个节点负责向您的客户端发送事件,请随机化您的联系点,以便始终主要为控制连接选择相同的联系点。 (注意:有一个这样的票,所以java驱动程序可以为你做这件事,JAVA-618