我正在尝试构建一个包含10个节点的apachecassandra(3.11.4)集群。我想了解,将所有节点作为种子节点和仅将少数节点作为种子节点之间的区别是什么。我在apache cassandra上没有找到多少关于种子节点的信息。我只有一个数据中心,考虑到这些因素,未来我可能需要增加或减少集群中的节点数,请建议我是否需要为集群保留多少种子节点。
qni6mghb1#
您必须了解,种子节点没有什么特别之处,只是您希望在节点添加到集群后出现时,其中一个节点总是可以访问的,这样它们就可以将集群拓扑传播到新加入的节点。因此,如果您有一个由10个节点组成的集群,则不必在seed node表中包含所有10个节点,而是只能将3个或4个节点配置为seed node。当一个新的节点想要加入集群时,它将尝试从它的节点到达种子节点 cassandra.yaml 以发现是否有已在运行的群集。如果一个种子节点是可到达的,它将从中检索集群拓扑并加入集群。后续重新启动使用以前的拓扑信息,因此即使所有种子节点都已关闭,也不会影响群集的重新启动/操作。您只需要始终有多个种子节点处于启动状态,否则如果所有种子节点都处于关闭状态,则无法向集群添加新节点。因此,请确保将种子节点分布在可用性区域/机架上。
cassandra.yaml
1条答案
按热度按时间qni6mghb1#
您必须了解,种子节点没有什么特别之处,只是您希望在节点添加到集群后出现时,其中一个节点总是可以访问的,这样它们就可以将集群拓扑传播到新加入的节点。
因此,如果您有一个由10个节点组成的集群,则不必在seed node表中包含所有10个节点,而是只能将3个或4个节点配置为seed node。
当一个新的节点想要加入集群时,它将尝试从它的节点到达种子节点
cassandra.yaml
以发现是否有已在运行的群集。如果一个种子节点是可到达的,它将从中检索集群拓扑并加入集群。后续重新启动使用以前的拓扑信息,因此即使所有种子节点都已关闭,也不会影响群集的重新启动/操作。
您只需要始终有多个种子节点处于启动状态,否则如果所有种子节点都处于关闭状态,则无法向集群添加新节点。因此,请确保将种子节点分布在可用性区域/机架上。