我在Tarantool Cartridge上开发了一个应用程序。我的集群由12个Tarantool实例组成,它们被分为4个副本集(一些是路由器,一些是存储)。现在从头开始安装这个集群,我在Web管理应用程序上手动配置这个集群:创建副本集、引导存储、配置故障转移模式。如何自动完成此配置?最好的方法是什么?
发布于 2020-10-29 12:47:08
发布于 2021-01-05 12:03:31
您可以启动集群中应该包含的所有tarantool实例,通过tarantoolctl连接到其中一个实例,并执行确定群集拓扑的脚本,通过vshard初始化切分,并配置故障转移模式(在本例中,通过etcd)。
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' }
}
})https://stackoverflow.com/questions/64590922
复制相似问题