考虑以下场景:一个由 6 个节点组成的集群,其中 3 个指定为种子节点:
- node1:种子节点
- 节点2:种子节点
- node3:种子节点
- node4:非种子节点
- node5:非种子节点
- node6:非种子节点
目标是将种子节点从 [node1,node2,node3] 更改为 [node4,node5,node6]。
为了实现这一目标,采取了以下步骤:
- 修改配置以指定节点 [node4、node5、node6] 作为种子节点。
- 在每个节点上重新启动服务,一次一个。
本次操作成功,服务重启过程中没有数据丢失。
但是我不确定这个操作是否可以,因为它在文档中没有提到。
更改集群中种子的过程与替换失效种子节点的过程非常相似。
在大多数情况下,您只需要更新所有节点上
seeds
的列表:cassandra.yaml
要强制节点识别新种子,请运行:
请注意,此命令是在 Cassandra 4.0 ( CASSANDRA-14190 ) 中添加的。对于较旧的集群,您需要重新启动 Cassandra 才能
cassandra.yaml
使更改生效。除非您要删除旧的种子节点,否则无需立即重新启动 Cassandra。它可以等到下一个可用的维护时段。干杯!