MySQL(20) 通过ZooKeeper集群管理Mycat配置

一、前言

MySQL(17) 通过Docker搭建主从同步
MySQL(18) 通过Docker搭建Mycat实现读写分离
MySQL(19) Mycat分片(分库分表)配置

ZooKeeper是什么?

ZooKeeper是一个集中的服务,用于配置管理命名服务、提供分布式同步和提供组服务等。

本文将通过ZK配置集中管理去管理Mycat配置(schema.xmlserver.xmlrule.xml …),即将mycat的配置全部放到ZK上进行监听,一旦配置信息改变,就从ZK获取最新的配置信息应用到mycat服务中
MySQL(20) 通过ZooKeeper集群管理Mycat配置_第1张图片

二、通过ZooKeeper集群管理Mycat配置

1、Docker安装配置ZK

# 创建所需文件夹,用于映射容器相应文件路径
mkdir -p /IT_zhengqing/soft/zookeeper/conf
mkdir -p /IT_zhengqing/soft/zookeeper/data

cd /IT_zhengqing/soft/zookeeper/conf

# echo:如果没有这个文件则创建。如果有这个文件,那么新内容将会代替原来的内容
echo '# 心跳检查的时间 2秒
tickTime=2000
# 初始化时连接到服务器端的间隔次数,总时间5*2=10秒
initLimit=5
# ZK Leader 和follower 之间通讯的次数,总时间2*2=4秒
syncLimit=2

autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true

# 数据目录
dataDir=/data
# 日志目录
dataLogDir=/datalog
# 客户端端口
clientPort=2181
# 对应`myid`文件数据1   2888:集群内机器通讯使用(Leader监听此端口)  3888:选举leader使用
server.1=www.zhengqingya.com:2888:3888
# server.2=www.zhengqingya.com:2888:3888       
# server.3=www.zhengqingya.com:2888:3888' > zoo.cfg

cd /IT_zhengqing/soft/zookeeper/data

echo '1' > myid

# 拉取ZK镜像
docker pull zookeeper
# 运行ZK (记得开放端口供远程访问)
docker run --name zookeeper_server -d -p 2181:2181 -v /IT_zhengqing/soft/zookeeper/data/myid:/data/myid -v /IT_zhengqing/soft/zookeeper/conf/zoo.cfg:/conf/zoo.cfg zookeeper
# 进行容器
docker exec -it zookeeper_server /bin/bash

这里由于小编只部署了一台ZK服务,所有只配置了一个server.1,如果有多个的话即配置server.2server.3… 然后修改每一台ZK服务对应的myid即可!

2、配置Mycat支持ZK管理

① 修改myid.properties配置文件
# 进入mycat容器
docker exec -it mycat_server /bin/bash
# 修改`myid.properties`配置文件
vi /usr/local/mycat/conf/myid.properties

myid.properties配置文件修改如下:

loadZk=true
# ZK集群节点,多个用逗号分隔
zkURL=www.zhengqingya.com:2181
# ZK集群内mycat集群ID
clusterId=mycat-cluster-1
# mycat集群本实例节点ID,不能重复,如另一台是mycat_fz_02...
myid=mycat_fz_01
# mycat集群节点个数
clusterSize=1
# mycat集群所有节点成员,逗号分隔
clusterNodes=mycat_fz_01
#clusterSize=3
#clusterNodes=mycat_fz_01,mycat_fz_02,mycat_fz_03
#server  booster  ;   booster install on db same server,will reset all minCon to 1
type=server
boosterDataHosts=dn2,dn3
② 初始化ZK数据完成mycat同步数据到ZK
# 拷贝mycat初始配置,将配置好的conf目录下的配置文件复制到同级目录zkconf下
cp /usr/local/mycat/conf/*.xml /usr/local/mycat/conf/zkconf/
cp /usr/local/mycat/conf/*.properties /usr/local/mycat/conf/zkconf/
cp /usr/local/mycat/conf/*.txt /usr/local/mycat/conf/zkconf/
cp /usr/local/mycat/conf/*.conf /usr/local/mycat/conf/zkconf/

# 初始化ZK数据
cd /usr/local/mycat/bin
./init_zk_data.sh

3、测试使用ZK配置管理Mycat

使用ZooInspector工具管理ZK

  1. 下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
  2. 解压,进入build目录,运行java -jar zookeeper-dev-ZooInspector.jar

MySQL(20) 通过ZooKeeper集群管理Mycat配置_第2张图片
建立连接
MySQL(20) 通过ZooKeeper集群管理Mycat配置_第3张图片
连接成功后,我们就可以修改其配置然后点击保存,对应的mycat配置也会同步更新!
MySQL(20) 通过ZooKeeper集群管理Mycat配置_第4张图片


最后,我们就这样简单的完成了ZooKeeper集群管理Mycat配置~

你可能感兴趣的:(-----,-----①,MySQL)