由于网络波动,Cassandra 3节点群集八卦协议问题

时间:2016-10-01 13:34:19

标签: cassandra datastax

我有3个节点的Cassandra 3.7群集,密钥空间复制因子为3。

所有3个节点都已启动并且处于同步状态。当其中一个cassandra节点发生故障时,我重新启动它,节点与另一个节点同步。

现在我的问题是,其中一个节点出现网络频繁波动等问题(cassandra仍然正常运行)。 假设节点1出现网络问题,其他2个节点上的nodetool状态显示节点1已关闭。当网络返回节点1时 nodetool status显示其他节点已关闭。

以下是我在cassandra.yaml文件中所做的配置更改。

Node 01 cluster_name: 'Test Cluster' num_tokens: 256 seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "10.1.1.4,10.1.1.5,10.1.1.6" listen_address: 10.1.1.4 broadcast_address: 10.1.1.4 rpc_address: 0.0.0.0 broadcast_rpc_address: 10.1.1.4
Node02 cluster_name: 'Test Cluster' num_tokens: 256 seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "10.1.1.4,10.1.1.5,10.1.1.6" listen_address: 10.1.1.5 broadcast_address: 10.1.1.5 rpc_address: 0.0.0.0 broadcast_rpc_address: 10.1.1.5
Node03 cluster_name: 'Test Cluster' num_tokens: 256 seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "10.1.1.4,10.1.1.5,10.1.1.6" listen_address: 10.1.1.6 broadcast_address: 10.1.1.6 rpc_address: 0.0.0.0 broadcast_rpc_address: 10.1.1.6

网络启动时节点1上的Nodetool状态显示其他节点已关闭(DN)。

其他节点上的Nodetool状态显示节点1已关闭(DN)

八卦协议在这种情况下如何运作?

为什么网络启动时节点1与其他节点不同步?

请帮我解决这个问题。

先谢谢,

GKK

2 个答案:

答案 0 :(得分:0)

如果您使用的是AWS或适当的传感器,请确保使用Ec2MultiRegionSnitch基金。

此外,如果您使用的是AWS,则公共IP地址可能与私有IP地址不同,在这种情况下,您可能需要相应地修改listen_address:broadcast_address:值。

最后,对于seeds值,我会省略源IP作为种子的一部分,换句话说:

Node 01 ... seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "10.1.1.5,10.1.1.6" listen_address: 10.1.1.4 ...

Node02 ... seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "10.1.1.4,10.1.1.6" listen_address: 10.1.1.5 ...

Node03 ... seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: "10.1.1.4,10.1.1.5" listen_address: 10.1.1.6 ...

答案 1 :(得分:0)

尝试降低种子数量。 1或2应该就够了。顺便说一句,在所有节点上使用相同的种子列表。