如何解释 Cassandra 集群中看似奇怪的行为?

How can the seemingly odd behavior in Cassandra cluster be explained?

我创建了一个包含 50 个节点的 Apache Cassandra 2.1.2 集群。我将集群命名为 "Test Cluster",默认值。然后为了进行一些测试,我从 50 个节点的集群中分离出一个节点。我关闭了 Cassandra,删除了数据目录,刷新了 nodetool。然后我编辑了单节点集群并将其命名为 "Single Node Test Cluster" 我适当地编辑了种子、cluster_name 和 listen_address 字段。我也正确设置了 JMX。现在这是发生了什么。 1. 当我在单个节点上 运行 nodetool status 时,我只看到一个节点为 up 和 运行ning。如果我 运行 nodetool describecluster,我会看到新的集群名称 - "Single Node Test Cluster" 2. 当我在 49 个节点之一上执行 运行 nodetool 命令时,我看到总共 50 个节点,其中单个节点已关闭,我看到集群名称为 "Test Cluster" 3.每个节点上都安装了datastax-agents,我还设置了OpsCenter来监控集群。在 OpsCenter 中,我仍然看到 50 个节点处于运行状态,集群名称为 "Test Cluster" 所以我的问题是,为什么我会看到这 3 种对同一拓扑的不同描述,这是预期的吗?

另一个问题是,当我在单节点上启动 Cassandra 时,我仍然看到它以某种方式尝试与其他节点通信,并且我不断收到集群名称不匹配(测试集群!=单节点测试集群)警告单节点集群启动前的控制台。

这是预期的还是这是 Cassandra 中的错误?

是的,如果您从集群中删除一个节点,您需要通知集群的恢复它已经消失了。

您可以通过在节点仍在集群中时将其停用或在节点不在时通过使用 nodetool 从另一个节点中删除节点来实现。 IE。您无法再访问此框。

如果您不执行上述任何操作,您仍会在对方的 system.peers table.

中看到该节点