【问题标题】:How to config Tarantool Cartridge cluster automatically?如何自动配置 Tarantool Cartridge 集群?
【发布时间】:2020-10-29 12:15:52
【问题描述】:

我有一个在 Tarantool Cartridge 上开发的应用程序。我的集群由 12 个 Tarantool 实例组成,分为 4 个副本集(一些是路由器,一些是存储)。现在开始从头开始设置这个集群,我在 Web UI 管理应用程序上手动配置这个集群:创建副本集、引导存储、配置故障转移模式。 如何自动进行此配置?最好的方法是什么?

【问题讨论】:

    标签: tarantool tarantool-cartridge


    【解决方案1】:

    有这样的工具:

    【讨论】:

      【解决方案2】:

      您可以启动所有应该包含在集群中的 tarantool 实例,通过 tarantoolctl 连接到其中一个并执行确定集群拓扑的脚本,通过 vshard 初始化分片,并配置故障转移模式(在示例中,通过等)。

      cartridge = require('cartridge')
      replicasets = { {
                          alias = 'router1',
                          roles = { 'router', 'vshard-router', 'failover-coordinator' },
                          join_servers = { { uri = '172.20.0.2:3301' } }
                      }, {
                          alias = 'router2',
                          roles = { 'router', 'vshard-router', 'failover-coordinator' },
                          join_servers = { { uri = '172.20.0.3:3301' } }
                      }, {
                          alias = 'router3',
                          roles = { 'router', 'vshard-router', 'failover-coordinator' },
                          join_servers = { { uri = '172.20.0.4:3301' } }
                      }, {
                          alias = 'storage1',
                          roles = { 'storage', 'vshard-storage' },
                          join_servers = { { uri = '172.20.0.2:3302' },
                                           { uri = '172.20.0.3:3302' },
                                           { uri = '172.20.0.4:3302' } }
                      }, {
                          alias = 'storage2',
                          roles = { 'storage', 'vshard-storage' },
                          join_servers = { { uri = '172.20.0.3:3303' },
                                           { uri = '172.20.0.2:3303' },
                                           { uri = '172.20.0.4:3303' } }
                      }, {
                          alias = 'storage3',
                          roles = { 'storage', 'vshard-storage' },
                          join_servers = { { uri = '172.20.0.4:3304' },
                                           { uri = '172.20.0.2:3304' },
                                           { uri = '172.20.0.3:3304' } }
                      } }
      
      cartridge.admin_edit_topology({ replicasets = replicasets })
      cartridge.admin_bootstrap_vshard()
      cartridge.failover_set_params({
          mode = 'stateful',
          state_provider = 'etcd2',
          etcd2_params = {
              prefix = '/',
              lock_delay = 10,
              endpoints = { '172.20.0.2:2379', '172.20.0.3:2379', '172.20.0.4:2379' }
          }
      })
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-29
        • 2020-03-12
        • 1970-01-01
        相关资源
        最近更新 更多