Lua 正在运行的tarantool实例上重写配置

Lua 正在运行的tarantool实例上重写配置,lua,database-replication,replicaset,tarantool,Lua,Database Replication,Replicaset,Tarantool,在本课程中,有谁能告诉我,可以在运行的实例上重写各个box.cfg的参数。例如,添加一个复制副本,几天来我一直试图通过docker服务堆栈在三台主机上部署三个复制副本。 当我在每台服务器上举手时,一切都正常,通过部署,它们彼此看不到对方而摔倒。我试过各种方法。挂起目标节点上的端点,当请求时,它会给出容器上升的机器的ip,如果ip与SEED中指示的ip之一匹配,则替换容器的内部ip(否则它无法连接到自身)。 从理论上讲,这一切都如我所描述的那样工作,但是有人怀疑一切都没有太大的不同,我认为问题在于

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

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

replication\u source
有点棘手。您可以动态地设置它,但是您对
box.cfg
的第一次(初始化)调用应该使用
replication\u source
。这是因为在没有此参数的情况下初始化的所有实例都将创建它们自己的复制集,这将使它们无法连接到另一个复制集

您可以在此处阅读有关Tarantool复制体系结构的更多信息: