阅读(1603) (13)

Mycat2 使用zookeeper部署多个Mycat2

2021-09-08 11:02:41 更新

Mycat2不像1.6有主从概念,也就说Mycat2之间的地位是平等的,Zookeeper的作用是作为配置中心,存储mycat的配置,以及提供元数据锁的功能

  1. 部署zk,并记录zk服务地址zk_address
  2. 更改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)