創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、溆浦網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價格優(yōu)惠性價比高,為溆浦等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
學(xué)習(xí)
mycat
MySQL
1. ZooKeeper簡介
2. ZooKeeper角色和端口
3. ZooKeeper部署簡介
4. ZooKeeper部署管理Mycat
4.3.1 下載解壓
4.3.2 修改配置文件
4.3.3 添加myid文件
4.3.4 同步zookeeper目錄到其它2個節(jié)點(diǎn),修改myid
4.3.5 啟動zookeeper
4.1 環(huán)境
4.2 環(huán)境準(zhǔn)備
4.3 安裝zookeeper
4.4 安裝Mycat
4.6 執(zhí)行mycat初始化數(shù)據(jù)
4.7 配置mycat支持zookeeper
4.8 用zookeeper配置mycat
ZooKeeper 是一個面向分布式系統(tǒng)的構(gòu)建塊。當(dāng)設(shè)計(jì)一個分布式系統(tǒng)時,一般需要設(shè)計(jì)和開發(fā)一些協(xié)調(diào)服務(wù):
名稱服務(wù)— 名稱服務(wù)是將一個名稱映射到與該名稱有關(guān)聯(lián)的一些信息的服務(wù)。電話目錄是將人的名字映射到其電話號碼的一個名稱服務(wù)。同樣,DNS 服務(wù)也是一個名稱服務(wù),它將一個域名映射到一個 IP 地址。在分布式系統(tǒng)中,您可能想跟蹤哪些服務(wù)器或服務(wù)在運(yùn)行,并通過名稱查看其狀態(tài)。ZooKeeper 暴露了一個簡單的接口來完成此工作。也可以將名稱服務(wù)擴(kuò)展到組成員服務(wù),這樣就可以獲得與正在查找其名稱的實(shí)體有關(guān)聯(lián)的組的信息。
鎖定— 為了允許在分布式系統(tǒng)中對共享資源進(jìn)行有序的訪問,可能需要實(shí)現(xiàn)分布式互斥(distributed mutexes)。ZooKeeper 提供一種簡單的方式來實(shí)現(xiàn)它們。
同步— 與互斥同時出現(xiàn)的是同步訪問共享資源的需求。無論是實(shí)現(xiàn)一個生產(chǎn)者-消費(fèi)者隊(duì)列,還是實(shí)現(xiàn)一個障礙,ZooKeeper 都提供一個簡單的接口來實(shí)現(xiàn)該操作。
配置管理— 您可以使用 ZooKeeper 集中存儲和管理分布式系統(tǒng)的配置。這意味著,所有新加入的節(jié)點(diǎn)都將在加入系統(tǒng)后就可以立即使用來自 ZooKeeper 的最新集中式配置。這還允許您通過其中一個 ZooKeeper 客戶端更改集中式配置,集中地更改分布式系統(tǒng)的狀態(tài)。
領(lǐng)導(dǎo)者選舉— 分布式系統(tǒng)可能必須處理節(jié)點(diǎn)停機(jī)的問題,您可能想實(shí)現(xiàn)一個自動故障轉(zhuǎn)移策略。ZooKeeper 通過領(lǐng)導(dǎo)者選舉對此提供現(xiàn)成的支持。
系統(tǒng):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 |
為了測試方便,這里關(guān)閉系統(tǒng)防火墻和禁用selinux,生產(chǎn)環(huán)境防火墻則需要開放zookeeper相關(guān)端口,2181、2888、3888。
# 關(guān)閉防火墻 systemctl stop firewalld.service systemctl disable firewalld.service # 關(guān)閉SELINUX sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux setenforce 0
先在testA
節(jié)點(diǎn)安裝,再同步到其它2個節(jié)點(diǎn)。
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
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
vim /usr/local/zookeeper/data/myid
寫入 1
rsync -avzP /usr/local/zookeeper/ root@192.168.33.12:/usr/local/zookeeper/ rsync -avzP /usr/local/zookeeper/ root@192.168.33.13:/usr/local/zookeeper/
并在2個節(jié)點(diǎn)分別修改對應(yīng)的myid
cd /usr/local/zookeeper/bin/ ./zkServer.sh start
同樣,3個節(jié)點(diǎn)都需要安裝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
3個節(jié)點(diǎn)Mycat都執(zhí)行如下腳本
sh /usr/local/mycat/bin/init_zk_data.sh
vim /usr/local/mycat/conf/myid.properties
loadZk=true # zk集群地址,多個用","隔開 zkURL=127.0.0.1:2181 # zk集群內(nèi)Mycat集群ID clusterId=mycat-cluster-1 # Mycat集群內(nèi)本實(shí)例ID,禁止重復(fù) myid=mycat_fz_01 # Mycat集群內(nèi)節(jié)點(diǎn)個數(shù) 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
使用ZooInspector工具管理ZooKeeper,以下是連接zookeeper方法。
連接成功后,可看到mycat集群的配置
修改相應(yīng)配置
啟動mycat后,mycat配置文件會自動更新。
注意事項(xiàng):
loadZk必須改為true才生效
zkURL的地址是多個中間用“,”隔開
clusterId,同一個zk內(nèi)的集群ID必須唯一
Myid:本實(shí)例的id在當(dāng)前的mycat集群內(nèi)ID唯一
配置完zk并啟動mycat后,會更新本地conf下的相關(guān)配置文件。
參考資料:
[1] http://mycat.io/
[2] 《分布式數(shù)據(jù)庫架構(gòu)及企業(yè)實(shí)踐——基于Mycat中間件》
[3] 龍哥官方課程課件
[4] http://zookeeper.apache.org/
[5] https://www.ibm.com/developerworks/cn/data/library/bd-zookeeper/