首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动配置Tarantool Cartridge集群?

如何自动配置Tarantool Cartridge集群?
EN

Stack Overflow用户
提问于 2020-10-29 12:15:52
回答 2查看 212关注 0票数 1

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-29 12:47:08

票数 2
EN

Stack Overflow用户

发布于 2021-01-05 12:03:31

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

代码语言:javascript
复制
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' }
    }
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64590922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档