Zookeeper的介紹和安裝

What is ZooKeeper?

ZooKeeper是一個集中的服務,用於維護配置信息、命名、提供分佈式同步以及提供組服務。node

爲何使用Zookeeper

1.大部分分佈式應用須要一個主控、協調器或控制器來管理物理分佈的子進程(如資源、任務分配等) 2.提供通用的分佈式鎖服務,用以協調分佈式應用服務器

有哪些應用場景

1.統一命名服務 2.配置管理 3.集羣管理 4.共享鎖 5.隊列管理app

安裝過程

1.上傳zk安裝包分佈式

2.解壓 tar -xvzf zookeeper-3.4.10.tar.gzspa

3.配置(先在一臺節點上配置)
    3.1添加一個zoo.cfg配置文件
    $ZOOKEEPER/conf
    mv zoo_sample.cfg zoo.cfg
    
    3.2修改配置文件(zoo.cfg)
        dataDir=/apps/zookeeper-3.4.10/data
        server.1=172.0.0.1:2888:3888
        server.2=172.0.0.2:2888:3888
        server.3=172.0.0.3:2888:3888
    
    3.3在(dataDir=/apps/zookeeper-3.4.10/data)建立一個myid文件,裏面內容是server.N中的N(server.2裏面內容爲2,以此類推)
        echo 1 > myid
    
    3.4將配置好的zk拷貝到其餘節點
        scp -r /apps/zookeeper-3.4.10/ 172.0.0.2:/apps/
        scp -r /apps/zookeeper-3.4.10/ 172.0.0.3:/apps/
    
    3.5注意:在其餘節點上必定要修改myid的內容
        在service02應該講myid的內容改成2 (echo 2 > myid)
        在service03應該講myid的內容改成3 (echo 3 > myid)
        
4.啓動集羣
    分別啓動zk 進入$ZOOKEEPER/bin/
        ./zkServer.sh start
5.檢查是否運行正常
                ./zkServer.sh status日誌

zookeeper的配置說明

zookeeper的默認配置文件爲zookeeper/conf/zoo_sample.cfg,須要將其修改成zoo.cfg。其中各配置項的含義,解釋以下:server

1.tickTime:CS通訊心跳時間 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。tickTime以毫秒爲單位。 tickTime=2000隊列

2.initLimit:LF初始通訊時限 集羣中的follower服務器(F)與leader服務器(L)之間初始鏈接時能容忍的最多心跳數(tickTime的數量)。 initLimit=5進程

3.syncLimit:LF同步通訊時限 集羣中的follower服務器與leader服務器之間請求和應答之間能容忍的最多心跳數(tickTime的數量)。 syncLimit=2資源

4.dataDir:數據文件目錄 Zookeeper保存數據的目錄,默認狀況下,Zookeeper將寫數據的日誌文件也保存在這個目錄裏。 dataDir=/apps/zookeeper/data

5.clientPort:客戶端鏈接端口 客戶端鏈接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。 clientPort=2181

6.服務器名稱與地址:集羣信息(服務器編號,服務器地址,LF通訊端口,選舉端口) 這個配置項的書寫格式比較特殊,規則以下: server.N=YYY:A:B

server.1=172.0.0.1:2888:3888 server.2=172.0.0.2:2888:3888 server.3=172.0.0.3:2888:3888

說明:端口2888由對等zookeeper服務器使用,用於互相通訊;而端口3888用於投票選舉

zookeeper對數據的組織方式

一、提供一個相似於目錄樹的結構來管理客戶端提交的數據 /aaa/bbb/ccc /yyy/uuu

二、目錄樹上的每個子節點均可以存儲一份數據信息,目錄樹上的每一個節點都稱爲一個znode

三、要訪問數據時應該指定數據節點znode所在的路徑

相關文章
相關標籤/搜索