我正在编写一个自动化脚本,该脚本应该在AWS中创建4个实例,并在其上部署rethinkdb集群,而无需任何人工干预。根据文档,我需要在命令行上使用--join
参数或在配置文件中放置join
语句。但是,我不明白的是,为了创建集群或每次重新启动任何集群节点,我只需要指定join
一次吗?
我目前的理解是我只需要发出一次,集群配置以某种方式存储在元数据中,下次我可以在没有--join
参数的情况下启动rethinkdb,它将重新连接到集群的其余部分它自己的。但是我什么时候需要配置文件中的join
选项呢?
如果这是真的,那么我是否需要在我的脚本中使用--join
选项启动rethinkdb然后将其关闭,然后在没有--join
的情况下重新开始?这是正确的做法还是有更好的选择?
答案 0 :(得分:2)
您是正确的,在后续重新启动时,您不需要从命令行指定--join
,它将发现群集并尝试重新连接。集群状态的一部分存储在系统表server_config
中。
即使您清除了此节点上的数据目录,它仍然可以形成群集,因为其他节点可能具有该节点的信息,并将尝试连接到该节点。但是,如果没有其他节点存储有关此特定服务器的信息,或者由于某种原因重新启动此特定节点并具有新IP地址,并且其数据目录也被擦除,这次,群集不知道它(使用新的IP地址。)
所以,我总是会指定--join
。它没有伤害。在最坏的情况下,它有助于使新节点能够再次加入集群。