gpt4 book ai didi

三节点数据中心中的 Cassandra 种子值

转载 作者:行者123 更新时间:2023-12-05 01:18:40 26 4
gpt4 key购买 nike

我们将在本月将我们的应用程序部署到生产环境中,我们的堆栈将包括一个 3 节点、单数据中心的 Cassandra 1.2 版集群。考虑到这一点,我们已经完成了最初的 Cassandra.yaml 设置。在这样做时,我遇到了一个有趣的情况,我无法找到答案。

这与在每个节点 Cassandra.yaml 文件中设置 -seeds 参数有关。我所做的所有阅读都说最好的做法是:

  • 每个数据中心至少有 2 个种子。这是有道理的,因此其中一个节点可以关闭,而其他节点可以通过第二个种子进行播种。
  • 这两个种子对于所有(在我们的例子中是 3 个)节点应该是相同的。

  • 在我对此进行测试的部署中,我开始时所有三个节点都有一个种子,即节点 1 的 IP 地址。我的意图是将所有三个节点的种子都更改为 node1 和 node2 的 IP 地址。首先,我通过以下方式完成了节点 3:
  • 使节点退役。
  • 关闭 Cassandra。
  • 将 -seeds 值更改为 ip_node1,ip_node2
  • 启动 Cassandra。
  • 运行 nodetool status 以确保节点已添加回集群。

  • 接下来,我执行了节点 2,遵循与节点 3 完全相同的步骤。但发生了一些意想不到的事情。当我在节点 2 上重新启动 Cassandra 时,它没有加入现有的环。相反,它启动了自己的单节点环。很明显,在我传递给它的两个种子参数中,它使用了自己的 IP 地址,因此认为它是新环中的第一个节点。

    我很惊讶 Cassandra 没有选择我传递的其他种子值的种子参数(节点 2)。我能让它加入现有数据中心的唯一方法是将其种子设置为集群中的一个或两个其他节点。

    一个明显的解决方法是将我的三个节点种子值中的每一个配置为集群中其他两个节点的 IP 地址。但是由于有几个消息来源表明这不是“最佳实践”,我想我会问应该如何处理。所以我的问题是:
  • 如果在种子列表中,Cassandra 总是使用自己的 IP 地址作为种子是否正常?
  • 是否按照我建议的方式配置集群,这与最佳实践背道而驰是一个大问题?
  • 最佳答案

    这可能不是您问题的解决方案,但您是否比较了所有 cassandra.yaml 文件?

    除了 listen_address 之类的东西之外,它们都应该是相同的。 .

    您是否可能在 cluster name 中有空格或拼写错误?还?

    我只是想我会提到它作为检查的好东西。

    关于三节点数据中心中的 Cassandra 种子值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26388002/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com