【问题标题】:Join a RethinkDB Cluster using ReQL instead of command line argument使用 ReQL 而不是命令行参数加入 RethinkDB 集群
【发布时间】:2015-12-28 16:09:47
【问题描述】:

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

加入集群需要使用--join 参数或配置文件。要使用 Docker 执行此操作,现在需要为此创建一个新的 Docker 映像。

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

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

【问题讨论】:

    标签: rethinkdb


    【解决方案1】:

    在 Docker 中,我们可以使用自定义命令覆盖调用 RethinkDB 进程的 CMD,以自定义正在执行的 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 仪表板,您现在应该会看到两个节点。

    【讨论】:

    • 谢谢,我想我希望通过 ReQL 来控制它,这样我就可以在不关闭服务器的情况下修改服务器,并在更改集群时使用新的 --join 参数重新启动它。这是一个很好的解决方法。
    猜你喜欢
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2015-07-20
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多