Dubbo-zookeeper的部署和安裝

在水一方同學發表於2017-12-13

Dubbo-zookeeper的部署和安裝 原創 2016年04月29日 18:36:02 625 一、什麼是zookeeper zookeeper是一套註冊中心,用來管理叢集的工具,zookeeper是apache hadoop下的產品,但是這裡我們將zookeeper和阿里下的分散式框架Dubbo一起來使用。 二、zookeeper和Dubbo的叢集框架圖

Dubbo-zookeeper的部署和安裝
三、zookeeper的部署和安裝 首先準備三臺伺服器 伺服器 1:192.168.1.81 埠:2181、2881、3881 伺服器 2:192.168.1.82 埠:2182、2882、3882 伺服器 3:192.168.1.83 埠:2183、2883、3883

1、 修改作業系統的/etc/hosts 檔案,新增 IP 與主機名對映:

zookeeper cluster servers

192.168.1.81 edu-zk-01 192.168.1.82 edu-zk-02 192.168.1.83 edu-zk-03 2、 下載或上傳 zookeeper-3.4.6.tar.gz 到/home/wusc/zookeeper 目錄:

$ cd /home/wusc/zookeeper $ wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

3、 解壓 zookeeper 安裝包,並按節點號對 zookeeper 目錄重新命名:

$ tar -zxvf zookeeper-3.4.6.tar.gz 伺服器 1: $ mv zookeeper-3.4.6 node-01 伺服器 2: $ mv zookeeper-3.4.6 node-02 伺服器 3: $ mv zookeeper-3.4.6 node-03

4、 在各 zookeeper 節點目錄下建立以下目錄:

$ cd /home/wusc/zookeeper/node-0X (X 代表節點號 1、2、3,以下同解) $ mkdir data $ mkdir logs

5、 將 zookeeper/node-0X/conf 目錄下的 zoo_sample.cfg 檔案拷貝一份,命名為 zoo.cfg: $ cp zoo_sample.cfg zoo.cfg

6、 修改 zoo.cfg 配置檔案:

zookeeper/node- -1 01 的 配置 ( /home/wusc/ zookeeper/node- - 01/conf/zoo.cfg ) 如下: tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/wusc/zookeeper/node-01/data dataLogDir=/home/wusc/zookeeper/node-01/logs clientPort=2181 server.1=edu-zk-01:2881:3881 server.2=edu-zk-02:2882:3882 server.3=edu-zk-03:2883:3883zookeeper/node- -2 02 的 配置 ( /home/wusc/ zookeeper/node- -0 02 2 /conf/zoo.cfg )如下:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/wusc/zookeeper/node-02/data

dataLogDir=/home/wusc/zookeeper/node-02/logs

clientPort=2182

server.1=edu-zk-01:2881:3881

server.2=edu-zk-02:2882:3882

server.3=edu-zk-03:2883:3883

zookeeper/node- -3 03 的 配置 ( /home/wusc/ zookeeper/node- -0 03 3 /conf/zoo.cfg )如下:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/wusc/zookeeper/node-03/data

dataLogDir=/home/wusc/zookeeper/node-03/logs

clientPort=2183

server.1=edu-zk-01:2881:3881

server.2=edu-zk-02:2882:3882

server.3=edu-zk-03:2883:3883

引數說明: :

tickTime=2000

tickTime 這個時間是作為 Zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會傳送一個心跳。

initLimit=10

initLimit 這個配置項是用來配置 Zookeeper 接受客戶端(這裡所說的客戶端不是使用者連線 Zookeeper伺服器的客戶端,而是 Zookeeper 伺服器叢集中連線到 Leader 的 Follower 伺服器)初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 服

務器還沒有收到客戶端的返回資訊,那麼表明這個客戶端連線失敗。總的時間長度就是 10*2000=20 秒。

syncLimit=5

syncLimit 這個配置項標識 Leader 與 Follower 之間傳送訊息,請求和應答時間長度,最長不能超過多少

個 tickTime 的時間長度,總的時間長度就是 5*2000=10 秒。

dataDir=/home/wusc/zookeeper/node-01/data

dataDir顧名思義就是Zookeeper儲存資料的目錄,預設情況下Zookeeper將寫資料的日誌檔案也儲存在這個目錄裡。

clientPort=2181

clientPort 這個埠就是客戶端(應用程式)連線 Zookeeper 伺服器的埠,Zookeeper 會監聽這個埠接受客戶端的訪問請求。

7、 在 dataDir=/home/wusc/zookeeper/node-0X/data 下建立 myid 檔案 編輯 myid 檔案,並在對應的 IP 的機器上輸入對應的編號。如在 node-01 上,myid 檔案內容就是 1,node-02 上就是 2,node-03 上就是 3: $ vi /home/wusc/zookeeper/node-01/data/myid ## 值為 1 $ vi /home/wusc/zookeeper/node-02/data/myid ## 值為 2 $ vi /home/wusc/zookeeper/node-03/data/myid ## 值為 3

8、 在防火牆中開啟要用到的埠 218X、288X、388X

切換到 root 使用者許可權,執行以下命令:

chkconfig iptables on

service iptables start

編輯/etc/sysconfig/iptables

vi /etc/sysconfig/iptables

如伺服器 01 增加以下 3 行:

zookeeper

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 2881 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3881 -j ACCEPT 重啟防火牆:

service iptables restart

檢視防火牆埠狀態:

service iptables status

9、 啟動並測試 zookeeper(要用 wusc 使用者啟動,不要用 root): (1) 使用 wusc 使用者到/home/wusc/zookeeper/node-0X/bin 目錄中執行: $ /home/wusc/zookeeper/node-01/bin/zkServer.sh start $ /home/wusc/zookeeper/node-02/bin/zkServer.sh start $ /home/wusc/zookeeper/node-03/bin/zkServer.sh start (2) 輸入 jps 命令檢視程式: $ jps 1456 QuorumPeerMain 其中,QuorumPeerMain 是 zookeeper 程式,說明啟動正常 (3) 檢視狀態: $ /home/wusc/zookeeper/node-01/bin/zkServer.sh status (4) 檢視 zookeeper 服務輸出資訊: 由於服務資訊輸出檔案在/home/wusc/zookeeper/node-0X/bin/zookeeper.out $ tail -500f zookeeper.out

10、停止 zookeeper 程式:

$ zkServer.sh stop

11、配置 zookeeper 開機使用 wusc 使用者啟動:

編輯 node-01、node-02、node-03 中的/etc/rc.local 檔案,分別加入: su - wusc -c '/home/wusc/zookeeper/node-01/bin/zkServer.sh start' su - wusc -c '/home/wusc/zookeeper/node-02/bin/zkServer.sh start' su - wusc -c '/home/wusc/zookeeper/node-03/bin/zkServer.sh start'

相關文章