【问题标题】:overriding configuration on a running tarantool instance正在运行的 tarantool 实例上覆盖配置
【发布时间】:2020-09-28 03:58:13
【问题描述】:

任何人都可以在课程中告诉我,可以在正在运行的实例上覆盖单个 box.cfg 的参数。比如添加一个副本,这几天我一直在尝试通过docker服务栈在三台主机上部署三个副本。 当我在每台服务器上举手时,一切正常,通过部署他们看不到对方并跌倒。我已经尝试了各种方法。挂起目标节点上的端点,当请求时,它会给出容器所在机器的 ip,如果 ip 与 SEED 中指示的其中之一匹配,则替换为容器的内部 ip(否则无法连接对自己)。 理论上,这一切都像我描述的那样工作,但有人怀疑一切都没有太大的不同,我想问题是在声明 box.cfg 之前实例没有保留地址。唉,我不能进入容器,因为它不能上升。我的想法是,如果所有三个节点都被声明为最低设置,并且一旦它们开始监听子网,一旦节点找到另一个节点,它就会将其写入复制并覆盖 box.cfg。有经验的请指正。

【问题讨论】:

    标签: lua database-replication replicaset tarantool


    【解决方案1】:

    一些box.cfg 参数是动态的。例如,box.cfg{listen=}。您可以根据需要从 Lua 代码中设置此项。在您的情况下,如果容器稍后获取其 IP 地址,您只需在 listen 中指定端口。这样,Tarantool 将监听所有可能的接口。

    replication_source 有点棘手。您可以动态设置它,但您对box.cfg 的第一次(初始化)调用应该使用replication_source。这是因为没有这个参数初始化的所有实例都会创建自己的副本集,并且无法将它们加入另一个副本集。

    您可以在此处阅读有关 Tarantool 复制架构的更多信息:https://www.tarantool.io/en/doc/latest/book/replication/repl_architecture/

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      • 2016-03-13
      • 1970-01-01
      相关资源
      最近更新 更多