Mycat學習實戰-Mycat的zookeeper集群模式
Mycat學習實戰-Mycat的zookeeper集群模式
- Mycat學習實戰-Mycat的zookeeper集群模式
1. ZooKeeper簡介
2. ZooKeeper角色和端口
3. ZooKeeper部署簡介
4. ZooKeeper部署管理Mycat
4.3.1 下載解壓
4.3.2 修改配置文件
4.3.3 添加myid文件
4.3.4 同步zookeeper目錄到其它2個節點,修改myid
4.3.5 啟動zookeeper
4.1 環境
4.2 環境準備
4.3 安裝zookeeper
4.4 安裝Mycat
4.6 執行mycat初始化數據
4.7 配置mycat支持zookeeper
4.8 用zookeeper配置mycat
1. ZooKeeper簡介
ZooKeeper 是一個面向分布式系統的構建塊。當設計一個分布式系統時,一般需要設計和開發一些協調服務:
名稱服務— 名稱服務是將一個名稱映射到與該名稱有關聯的一些信息的服務。電話目錄是將人的名字映射到其電話號碼的一個名稱服務。同樣,DNS 服務也是一個名稱服務,它將一個域名映射到一個 IP 地址。在分布式系統中,您可能想跟蹤哪些服務器或服務在運行,並通過名稱查看其狀態。ZooKeeper 暴露了一個簡單的接口來完成此工作。也可以將名稱服務擴展到組成員服務,這樣就可以獲得與正在查找其名稱的實體有關聯的組的信息。
鎖定— 為了允許在分布式系統中對共享資源進行有序的訪問,可能需要實現分布式互斥(distributed mutexes)。ZooKeeper 提供一種簡單的方式來實現它們。
配置管理— 您可以使用 ZooKeeper 集中存儲和管理分布式系統的配置。這意味著,所有新加入的節點都將在加入系統後就可以立即使用來自 ZooKeeper 的最新集中式配置。這還允許您通過其中一個 ZooKeeper 客戶端更改集中式配置,集中地更改分布式系統的狀態。
領導者選舉— 分布式系統可能必須處理節點停機的問題,您可能想實現一個自動故障轉移策略。ZooKeeper 通過領導者選舉對此提供現成的支持。
2. ZooKeeper角色和端口
3. ZooKeeper部署簡介
4. ZooKeeper部署管理Mycat
4.1 環境
系統:CentOS7.3
jdk版本:1.7
zookeeper版本:3.4.10
mycat版本:1.6
hostname | IP | myid |
---|---|---|
testA | 192.168.33.11 | 1 |
testB | 192.168.33.12 | 2 |
testC | 192.168.33.13 | 3 |
4.2 環境準備
為了測試方便,這裏關閉系統防火墻和禁用selinux,生產環境防火墻則需要開放zookeeper相關端口,2181、2888、3888。
# 關閉防火墻 systemctl stop firewalld.service systemctl disable firewalld.service # 關閉SELINUX sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/sysconfig/selinux setenforce 0
4.3 安裝zookeeper
先在testA
節點安裝,再同步到其它2個節點。
4.3.1 下載解壓
mkdir -p /data/packages/ cd /data/packages/ wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz cd /usr/local/ tar -zxvf /data/packages/zookeeper-3.4.10.tar.gz ln -s zookeeper-3.4.10 zookeeper cd zookeeper mkdir data log cd conf/ cp zoo_sample.cfg zoo.cfg
4.3.2 修改配置文件
vim zoo.cfg
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/usr/local/zookeeper/data dataLogDir=/usr/local/zookeeper/log # the port at which the clients will connect clientPort=2181 server.1=192.168.33.11:2888:3888 server.2=192.168.33.12:2888:3888 server.3=192.168.33.13:2888:3888 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
4.3.3 添加myid文件
vim /usr/local/zookeeper/data/myid
寫入 1
4.3.4 同步zookeeper目錄到其它2個節點,修改myid
rsync -avzP /usr/local/zookeeper/ [email protected]:/usr/local/zookeeper/ rsync -avzP /usr/local/zookeeper/ [email protected]:/usr/local/zookeeper/
並在2個節點分別修改對應的myid
4.3.5 啟動zookeeper
cd /usr/local/zookeeper/bin/ ./zkServer.sh start
4.4 安裝Mycat
同樣,3個節點都需要安裝mycat。
cd /data/packages/ wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz cd /usr/local/ tar -zxvf /data/packages/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
4.6 執行mycat初始化數據
3個節點Mycat都執行如下腳本
sh /usr/local/mycat/bin/init_zk_data.sh
4.7 配置mycat支持zookeeper
vim /usr/local/mycat/conf/myid.properties
loadZk=true # zk集群地址,多個用","隔開 zkURL=127.0.0.1:2181 # zk集群內Mycat集群ID clusterId=mycat-cluster-1 # Mycat集群內本實例ID,禁止重復 myid=mycat_fz_01 # Mycat集群內節點個數 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=dataHost1
4.8 用zookeeper配置mycat
使用ZooInspector工具管理ZooKeeper,以下是連接zookeeper方法。
連接成功後,可看到mycat集群的配置
修改相應配置
啟動mycat後,mycat配置文件會自動更新。
註意事項:
loadZk必須改為true才生效
zkURL的地址是多個中間用“,”隔開
clusterId,同一個zk內的集群ID必須唯一
Myid:本實例的id在當前的mycat集群內ID唯一
配置完zk並啟動mycat後,會更新本地conf下的相關配置文件。
參考資料:
[1] http://mycat.io/
[2] 《分布式數據庫架構及企業實踐——基於Mycat中間件》
[3] 龍哥官方課程課件
[4] http://zookeeper.apache.org/
[5] https://www.ibm.com/developerworks/cn/data/library/bd-zookeeper/
本文出自 “ygqygq2” 博客,請務必保留此出處http://ygqygq2.blog.51cto.com/1009869/1974592
Mycat學習實戰-Mycat的zookeeper集群模式