多节点Cassandra设置+连接出错

时间:2018-07-02 07:36:18

标签: express cassandra cassandra-3.0 express-cassandra

所以我正在尝试设置多节点cassandra集群。

我在3台不同的服务器上设置了3个cassandra节点。在所有三个cassandra.yaml文件中,我都定义了一个种子节点。清除数据并一步一步重新启动服务后,我可以看到它们显示出来,并且所有条目的nodetool状态都显示UN。现在,我使用express-cassandra连接到cassandra,效果很好,但它仅适用于前几个查询,之后便崩溃,并显示以下错误-

Error during find query on DB -> ResponseError: Server failure during read query at consistency ONE (1 responses were required but only 0 replicas responded, 2 failed)

它在哪个读取查询上失败并不重要,但是最多持续10秒钟,然后死亡。有时,它会死于先前运行成功的查询。另外,我只是想知道,如果有3个节点(一个种子节点),为什么它说2个失败?

我注意到,express-cassandra通知复制因子已更改并运行nodetool修复,但是在那里,我不断收到以下错误消息-

Validation failed in /xxx.xxx.xxx.xxx (progress: 0%) [2018-07-02 08:10:33,447] Some repair failed

xxx.xxx.xxx.xxx是三个节点IP地址之一。我试图在每个节点上运行nodetool修复,但是在每个服务器上我始终遇到相同的错误。

这些是我的express-cassandra设置属性(xxx.xxx.xxx.xxx是我的种子IP地址):

    clientOptions: {
      contactPoints: ['xxx.xxx.xxx.xxx'],
      protocolOptions: {
        port: 9042
      },
      keyspace: 'test_keyspace',
      queryOptions: {
        consistency: cassandra.consistencies.one
      },
      socketOptions: {
        readTimeout: 0
      }
    },
    ormOptions: {
      defaultReplicationStrategy: {
        class: 'NetworkTopologyStrategy',
        dc1: 3
      }
    }

我不确定NetworkTOpologyStrategy的设置是否正确,但是在启动express.js之后,我对数据库运行了一个写查询,并在所有三个节点上填充了数据。

解决这两个错误的任何帮助都很棒!

1 个答案:

答案 0 :(得分:1)

在这里提供答案,以防万一其他人挣扎。

该问题与form=OrderForm(instance=order)有关。我切换到NetworkTopologyStrategy,它开始起作用。

我只有一个DC。

不确定,到底是什么引起了该问题,但是如果有人知道,请随时在评论中添加它,然后我将更新答案。