我正在编写一个自动化脚本,它应该在AWS中创建4个实例,并在其上部署rethinkdb集群,而不需要任何人工交互。根据文档,我需要在命令行上使用--join参数,或者将join语句放在配置文件中。但是,我不明白的是,如果我只需要指定join一次才能创建集群,还是每次重新启动任何集群节点时都需要指定一次?
我目前的理解是,我只需要发出一次,集群配置以某种方式存储在元数据中,下次我可以不使用--join参数启动rethinkdb,它将单独重新连接到集群的其余部分。但是我什么时候需要配置文件中的join选项呢?
如果这是真的,那么我是否需要在脚本中使用--join选项启动rethinkdb,然后关闭它,然后在没有--join的情况下重新启动呢?这是正确的方式,还是有更好的选择?
发布于 2016-04-11 01:07:58
在随后重新启动时,您不需要从命令行指定--join,它将发现集群并尝试重新连接,这是正确的。集群状态的一部分存储在系统表server_config中。
即使删除了此节点上的数据目录,它也可能仍然能够形成群集,因为其他节点可能拥有有关该节点的信息,并将尝试连接到该节点。但是,如果没有其他节点存储有关此特定服务器的信息,或者该特定节点由于某种原因重新启动并具有新的IP地址,并且它的数据目录也被删除,那么这一次,集群不知道它(具有新的IP地址)。
所以,我将永远专攻--join。不会疼的。在最坏的情况下,它有助于使新节点能够再次加入集群。
https://stackoverflow.com/questions/36519766
复制相似问题