阅读(1603)
赞(13)
Mycat2 使用zookeeper部署多个Mycat2
2021-09-08 11:02:41 更新
Mycat2不像1.6有主从概念,也就说Mycat2之间的地位是平等的,Zookeeper的作用是作为配置中心,存储mycat的配置,以及提供元数据锁的功能
- 部署
zk
,并记录zk
服务地址zk_address
- 更改
mycat
配置
找到server.json
{
"loadBalance":{
"defaultLoadBalance":"BalanceRandom",
"loadBalances":[]
},
"mode":"local",
"properties":{},
....
}
设置
"mode":"cluster",
"properties":{"zk_address":"zk连接字符串"}
例子
"mode":"cluster",
"properties":{"zk_address":"127.0.0.1:2181"}
设置后,启动这一个mycat2
,mycat连接成功后,发现zk
里面没有配置,会自动把本地的配置导入到zk
里面,
此后使用ZooInspector
登录该zk
,编辑里面的mycat配置即可,除了server
级别配置,其他配置schema
,user
,cache
,sequence
,datasource
,cluster
.都可以实现热更新.
在ZK
里编辑相当于直接更改配置文件,暂时无法自动创建物理库,物理表.
然后,其余的mycat使用相同配置启动即可,但是它们发现zk里面已经有配置就不会理会本地配置,而是把zk
的配置刷新到本地配置
zk
连接器的其它特性,比如集群等,在连接字符串里面配置即可
jvm
启动参数添加-Dmode=cluster
,可以覆盖配置文件的mode
配置
如果mycat2
在以集群模式启动,但是无法连接上配置的zk
,则会启动一个内置的zk(127.0.0.1:2181)