【问题标题】:Replacing a seed node without removing it from seed list替换种子节点而不将其从种子列表中删除
【发布时间】:2019-02-12 10:26:36
【问题描述】:

我有一个共有 6 个节点的 cassandra(版本 2.2.8)集群,其中 3 个节点是种子节点。最近有一个种子节点出现故障。我需要更换那个死种子节点。我的集群的设置方式使其无法承受超过 1 个节点的损失。我阅读了此文档以替换死种子节点。 https://docs.datastax.com/en/cassandra/2.1/cassandra/operations/opsReplaceNode.html

根据文档,我害怕从种子列表中删除死种子节点并滚动重启。如果由于任何原因任何节点不会t start, Ill 丢失数据。

如何处理这种情况?在新节点完全启动并运行之前,是否可以不从种子列表中删除死种子节点?因为我已经有两个工作种子节点已经存在于种子列表中。请指教。

【问题讨论】:

    标签: cassandra cassandra-2.0 cassandra-2.1


    【解决方案1】:

    简而言之:是的,可以等待移除种子节点。

    说明:种子节点配置做了两件事:

    1. 添加新节点时。新节点将读取种子配置以获得与 Cassandra 集群的第一个联系点。节点加入集群后,它将在其 system.peers 表中保存有关所有 Cassandra 节点的信息。对于未来的所有启动,它将使用此信息连接到集群,而不是种子节点配置。
    2. Cassandra 还使用种子来改善八卦。基本上,种子节点比普通节点更有可能收到八卦消息。这提高了节点接收有关其他节点的更新(例如状态)的速度。

    在您的情况下,丢失一个种子节点只会影响 2。由于您还有两个种子节点,我认为这不是一个大问题。一旦您更新了种子配置,我仍然会在所有节点上进行滚动重启。

    【讨论】:

    • 感谢您的澄清。我的计划是先更换死节点。一旦新节点加入集群。我将更新种子配置以删除死节点的地址并将新节点的地址添加到种子列表中。将在所有节点上更新此内容并滚动重启。
    • 一个后续问题 - 当我设置新节点时,我是否应该在种子列表中添加死种子节点的地址以匹配其他节点上的配置。
    • 不,新节点应该有新的种子配置。只要确保您没有在自己的种子配置中添加自己的 ip,因为种子节点不会引导。
    • 我成功地用您提供的指导替换了节点。替换后,我更新了种子配置并为每个节点进行了滚动重启。
    • 太棒了。谢谢你告诉我。
    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多