1. 程式人生 > >分散式技術 -- Zookeeper多機叢集

分散式技術 -- Zookeeper多機叢集

    Hello,朋友們。我又來了。昨天因為博主的電腦出了點問題,導致沒更新文章。

    這次帶了的是zookeeper的單機叢集,注意:是多機叢集!多機叢集!多機叢集!(其實多機叢集和單機叢集原理一樣的,只是配置ip地址不一樣而已!)

    

    一起學習,一起進步。繼續沉澱,慢慢強大。希望這文章對您有幫助。若有寫的不好的地方,歡迎評論給建議哈!

    初寫部落格不久,我是楊展浩。這是我的第八篇部落格。加油!!!

 

    這次搭建單機叢集學習,閱讀的朋友們需要有安裝過zookeeper的操作沒安裝過zookeeper的朋友可以點進去看一篇https://my.oschina.net/u/3901188/blog/3102279,先動手操作一次。知道一個大概流程。

    接下來開始多機叢集的部署安裝以及相關的zookeeper客戶端命令使用:

    1、單機叢集部署安裝

        看過博主Zookeeper前兩篇的文章的朋友知道,博主是虛擬機器VMware 上安裝Centos7系統進行學習zookeeper的。如果看這篇文章的朋友你有自己的學習伺服器也是可以的,直接上伺服器操作一個樣。

        由於之前博主的一篇zookeeper安裝講解文章中,已經安裝過一個Centos(裡面安裝了zookeeper以及zookeeper需要的jdk環境)。在這裡博主直接照葫蘆畫瓢,搞多兩個一樣的Centos,zookeeper安裝路徑什麼的一樣。

        配置的jdk8環境變數,以及zookeeper的配置檔案修改在這不詳細講解了,博主發表的zookeeper安裝文章中有詳細講解到。

        接下來在zookeeper目錄中建立一個 myid

檔案(該檔案作用是用於伺服器標識,也用作標記序號):

        

        建立 myid 檔案,並且裡面輸入數字1,表示這是zookeeper叢集的1號服務。

        以此類推,分別在兩外兩臺伺服器,建立 myid 檔案,並且裡面分別輸入數字2、3。

            

        接下來在每個伺服器中的zookeeper的配置檔案中zoo.cfg配置叢集:

        # zookeeper叢集
        server.1=192.168.100.72:2888:3888
        server.2=192.168.100.73:2888:3888
        server.3=192.168.100.74:2888:3888

        
       

    在此講解zookeeper的叢集配置方式:

        模版:server.A=B:C:D   例子:server.1=192.168.100.72:2888:3888

        A是一個數字,表示的是第幾號伺服器。在zkData目錄中建立了一個myid檔案,裡面填寫的數字與這裡的數字是對應的。

        B是伺服器的ip地址。

        C是伺服器zookeeper服務叢集中的 Leader 服務與 Flower 服務交換資訊的埠。(通俗點就是:主從之間的資料同步)。

        D是萬一zookeeper叢集中的 Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的Leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。。

另外注意一點:Leader服務與Flower服務同步資訊的埠、重新選舉的埠需要確認下是否已經開啟。

    相關命令:

    查詢埠是否有開啟:firewall-cmd --query-port=埠號/tcp

    開啟埠:firewall-cmd --zone=public --add-port=埠號/tcp --permanent

    

    到這裡,zookeeper叢集的搭建以及配置就搞完了。

    

    接下來就是,叢集啟動,客戶端連線操作相關命令!!!(命令不多,不怕)

    啟動第一個叢集的時候,用檢視狀態命令檢視叢集情況會發現一個提示資訊:Error contacting service. It is probably not running.

    這表示當前zookeeper叢集中只有一個zookeeper服務啟動,達到半數以上(配置檔案配置了三個服務,半數以上就是兩臺)。

    接下來啟動第二臺伺服器中的zookeeper服務,再檢視狀態,發現當前zookeeper服務成為了Leader,第一臺啟動的zookeeper服務成為了follower。

    博主之前講解的zookeeper叢集原理時候,當有一臺伺服器的zookeeper服務成為了Leader後,後面加入叢集的zookeeper服務都會成為follower。

   

    叢集啟動成功!接下來客戶端連線,相關zookeeper客戶端命令操作簡介:

    命令演示操作就直接貼圖配文字啦!!!    

 

 

 

最後附上一個zookeeper客戶端的操作命令表格:

命令基本語法 功能描述
help 顯示所有的操作命令幫助
ls path [watch]         檢視path下的ZNode集合
ls2 path [watch] 檢視當前節點資料並且能看到更新次數等資料   
create 節點名稱 新值

建立節點ZNode,注意建立時候需要給節點賦值          

options:-s 建立節點帶有編號的

-e 建立臨時節點(當客戶端退出再進去建立的節點就不存在了)

get path [watch] 獲取指定節點ZNode的值
set path 新值 修改指定節點ZNode的值
stat 節點名稱                  檢視指定節點ZNode的結構
delete 節點名稱 刪除指定的節點ZNode
rmr 節點名稱     遞迴刪除節點ZNode

 

下一篇預告:使用開發工具開發zookeeper提供的API