溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

發(fā)布時間:2020-08-06 14:38:06 來源:網(wǎng)絡(luò) 閱讀:2690 作者:ygqygq2 欄目:MySQL數(shù)據(jù)庫

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式


學(xué)習(xí) mycat mysql



  • Mycat學(xué)習(xí)實戰(zhàn)-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個節(jié)點,修改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


1. ZooKeeper簡介

ZooKeeper 是一個面向分布式系統(tǒng)的構(gòu)建塊。當(dāng)設(shè)計一個分布式系統(tǒng)時,一般需要設(shè)計和開發(fā)一些協(xié)調(diào)服務(wù): 
名稱服務(wù)— 名稱服務(wù)是將一個名稱映射到與該名稱有關(guān)聯(lián)的一些信息的服務(wù)。電話目錄是將人的名字映射到其電話號碼的一個名稱服務(wù)。同樣,DNS 服務(wù)也是一個名稱服務(wù),它將一個域名映射到一個 IP 地址。在分布式系統(tǒng)中,您可能想跟蹤哪些服務(wù)器或服務(wù)在運行,并通過名稱查看其狀態(tài)。ZooKeeper 暴露了一個簡單的接口來完成此工作。也可以將名稱服務(wù)擴(kuò)展到組成員服務(wù),這樣就可以獲得與正在查找其名稱的實體有關(guān)聯(lián)的組的信息。 
鎖定— 為了允許在分布式系統(tǒng)中對共享資源進(jìn)行有序的訪問,可能需要實現(xiàn)分布式互斥(distributed mutexes)。ZooKeeper 提供一種簡單的方式來實現(xiàn)它們。 
同步— 與互斥同時出現(xiàn)的是同步訪問共享資源的需求。無論是實現(xiàn)一個生產(chǎn)者-消費者隊列,還是實現(xiàn)一個障礙,ZooKeeper 都提供一個簡單的接口來實現(xiàn)該操作。 
配置管理— 您可以使用 ZooKeeper 集中存儲和管理分布式系統(tǒng)的配置。這意味著,所有新加入的節(jié)點都將在加入系統(tǒng)后就可以立即使用來自 ZooKeeper 的最新集中式配置。這還允許您通過其中一個 ZooKeeper 客戶端更改集中式配置,集中地更改分布式系統(tǒng)的狀態(tài)。 
領(lǐng)導(dǎo)者選舉— 分布式系統(tǒng)可能必須處理節(jié)點停機的問題,您可能想實現(xiàn)一個自動故障轉(zhuǎn)移策略。ZooKeeper 通過領(lǐng)導(dǎo)者選舉對此提供現(xiàn)成的支持。

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

2. ZooKeeper角色和端口

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

3. ZooKeeper部署簡介

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

4. ZooKeeper部署管理Mycat

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

4.1 環(huán)境

系統(tǒng):CentOS7.3 
jdk版本:1.7 
zookeeper版本:3.4.10 
mycat版本:1.6

hostnameIPmyid
testA192.168.33.111
testB192.168.33.122
testC192.168.33.133

4.2 環(huán)境準(zhǔn)備

為了測試方便,這里關(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

4.3 安裝zookeeper

先在testA節(jié)點安裝,再同步到其它2個節(jié)點。

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個節(jié)點,修改myid
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é)點分別修改對應(yīng)的myid

4.3.5 啟動zookeeper
cd /usr/local/zookeeper/bin/
./zkServer.sh start

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式



4.4 安裝Mycat

同樣,3個節(jié)點都需要安裝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 執(zhí)行mycat初始化數(shù)據(jù)

3個節(jié)點Mycat都執(zhí)行如下腳本

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集群內(nèi)Mycat集群ID
clusterId=mycat-cluster-1
# Mycat集群內(nèi)本實例ID,禁止重復(fù)
myid=mycat_fz_01
# Mycat集群內(nèi)節(jié)點個數(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

4.8 用zookeeper配置mycat

使用ZooInspector工具管理ZooKeeper,以下是連接zookeeper方法。

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

連接成功后,可看到mycat集群的配置

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

修改相應(yīng)配置

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

啟動mycat后,mycat配置文件會自動更新。

Mycat學(xué)習(xí)實戰(zhàn)-Mycat的zookeeper集群模式

注意事項:

  • loadZk必須改為true才生效

  • zkURL的地址是多個中間用“,”隔開

  • clusterId,同一個zk內(nèi)的集群ID必須唯一

  • Myid:本實例的id在當(dāng)前的mycat集群內(nèi)ID唯一

  • 配置完zk并啟動mycat后,會更新本地conf下的相關(guān)配置文件。

參考資料: 
[1] http://mycat.io/ 
[2] 《分布式數(shù)據(jù)庫架構(gòu)及企業(yè)實踐——基于Mycat中間件》 
[3] 龍哥官方課程課件 
[4] http://zookeeper.apache.org/ 
[5] https://www.ibm.com/developerworks/cn/data/library/bd-zookeeper/


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI