多节点卡桑德拉设置+连接错误
Error with multi-node cassandra setup + connection
所以我正在尝试设置多节点 cassandra 集群。
我在 3 个不同的服务器上设置了 3 个 cassandra 节点。在所有三个 cassandra.yaml 文件中,我定义了同一个种子节点。清除数据并一项一项地重新启动服务后,我可以看到它们出现了,并且所有条目的节点工具状态都显示为 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 后,我 运行 向数据库写入查询,并在所有三个节点上填充数据.
任何解决这两个错误的帮助都会很棒!
在这里提供一个答案,以防其他人遇到困难。
此问题与 NetworkTopologyStrategy
有关。我切换到 SimpleStrategy
,它开始工作了。
我只有一台DC。
不确定,究竟是什么导致了这个问题,但如果有人知道,请随时在评论中添加,我会更新答案。
所以我正在尝试设置多节点 cassandra 集群。
我在 3 个不同的服务器上设置了 3 个 cassandra 节点。在所有三个 cassandra.yaml 文件中,我定义了同一个种子节点。清除数据并一项一项地重新启动服务后,我可以看到它们出现了,并且所有条目的节点工具状态都显示为 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 后,我 运行 向数据库写入查询,并在所有三个节点上填充数据.
任何解决这两个错误的帮助都会很棒!
在这里提供一个答案,以防其他人遇到困难。
此问题与 NetworkTopologyStrategy
有关。我切换到 SimpleStrategy
,它开始工作了。
我只有一台DC。
不确定,究竟是什么导致了这个问题,但如果有人知道,请随时在评论中添加,我会更新答案。