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)