9

是否可以动态地将新主机添加到 Cassandra 集群?

我想要做的是建立一个程序,它可以:

  • 为每个用户设置数据库的本地版本
  • 每个用户的机器都将成为集群的一部分(这些机器将成为主机)
  • 数据将在所有集群中复制

构建多主机集群通常需要配置 cassandra.yaml来存储每个主机的种子、listen_address 和 rpc_address。

我的想法是通过 java 编辑这些文件并根据需要插入新的主机地址,但确保每个用户的 cassandra.yaml 文件中的数据准确无误将具有挑战性。

我想知道是否有人做过类似的事情或对实现这一目标的更好方法有任何建议。

4

1 回答 1

4

是的是可能的。查看Netflix 的 Priam了解动态 cassandra 集群管理的完整示例(但设计用于与 Amazon EC2 一起使用)。

对于 rpc_address 和 listen_address,您可以设置一个启动脚本来配置 cassandra.yaml 如果它不正常。

对于种子,您可以配置自定义种子提供程序。查看用于 Netflix Priam 的种子提供程序,了解如何实现它

最困难的部分是以有效的方式管理分配给每个节点的令牌。Cassandra 1.2 即将推出,它将包含一个称为虚拟节点的功能,IMO 将在您的情况下运行良好。请参阅有关它的 Acunu 演示文稿

于 2012-11-07T13:23:14.187 回答