【问题标题】:Cassandra 3 node cluster gossip protocol issue due to network fluctuation由于网络波动导致的 Cassandra 3 节点集群 gossip 协议问题
【发布时间】:2017-02-09 23:04:35
【问题描述】:

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

所有 3 个节点都已启动并处于同步状态。当一个 cassandra 节点出现故障时,我重新启动它,该节点与另一个节点同步。

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

以下是我在 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)

gossip 协议在这种情况下如何工作?

为什么网络上的时候节点1和其他节点不同步?

请帮帮我。

提前致谢,

GKK

【问题讨论】:

  • 要么你的网络很时髦,要么你的节点过载和抖动。查看 gc 日志和 tp 统计信息。密切关注八卦线程池。

标签: cassandra datastax


【解决方案1】:

如果您使用的是 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 ...

【讨论】:

    【解决方案2】:

    尽量减少种子的数量。 1或2应该足够了。顺便说一句,在所有节点上使用相同的种子列表。

    【讨论】:

      猜你喜欢
      • 2020-07-03
      • 1970-01-01
      • 2015-11-19
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2012-01-23
      • 2017-02-13
      相关资源
      最近更新 更多