使用 ReQL 而不是命令行参数加入 RethinkDB 集群

Join a RethinkDB Cluster using ReQL instead of command line argument

我正在使用 Docker,默认情况下仅使用 --bind all 参数运行 RethinkDB 进程。

要加入集群需要使用 --join 参数或配置文件。要使用 Docker 执行此操作,现在需要为此目的制作新的 Docker 图像。

如何直接使用 ReQL 加入集群(从而无需创建新的 Docker 映像)。我可以简单地连接到单独的实例,向系统添加一行 table(如 server_status),然后该实例将连接到新输入的外部实例。

我可以为集群中的每个节点重复这个过程。并使节点启动和关闭时的事情变得更简单,否则我将不得不重新启动每个 RethinkDB 进程。

在Docker中,我们可以覆盖CMD,它使用自定义命令调用RethinkDB进程,以自定义正在执行的RethinkDB进程。我们可以传递 rethinkdb 命令加入第一个节点,而不是简单地调用 docker run rethinkdb

示例使用 official RethinkDB docker

docker run --rm -it -p 9080:8080 rethinkdb

然后我们可以检查它的IP地址,假设它是172.17.0.2,我们可以开始第二个:

docker run --rm -it -p 9081:8080 rethinkdb rethinkdb --join 172.17.0.2:29015 --bind all

访问 RethinkDB 仪表板,您现在应该会看到两个节点。