我有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
答案 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应该就够了。顺便说一句,在所有节点上使用相同的种子列表。