1:首先下載一個zookeeper,我下載的版本是zookeeper-3.4.6,(目前最新版本為3.5.0,但是啟動不了),解壓安裝包,解壓後的zookeeper安裝包我放置的路徑是:D:/zookeeper/zookeeper-3.4.6
2.:進入D:/zookeeper/zookeeper-3.4.6/conf,將zoo_sample.cfg文件復制一份,並將復制好的文件改名為zoo.cfg。打開新建的zoo.cfg文件,將裡面的內容進行修改,修改後的文件內容如下:
#initLimit=10
#syncLimit=5
tickTime=2000
dataDir=D:/zookeeper/zookeeper-3.4.6/data
clientPort=2181
3. 配置環境變量,在“我的電腦”上點擊右鍵,選擇屬性,再點擊高級系統設置,點擊環境變量按鈕,在系統變量這一欄,點擊新建,添加:
變量名:ZOOKEEPER_HOME
變量值:D:/zookeeper/zookeeper-3.4.6
還是在系統變量這一欄,找到path,點擊編輯path,在變量值裡添加:% ZOOKEEPER_HOME %/bin; % ZOOKEEPER_HOME %/conf;
4. 啟動D:/zookeeper/zookeeper-3.4.6/bin/ zkServer.cmd
這裡說下多個機器配置zookeeper (windows下偽集群沒有成功)
1:192.168.1.113, 192.168.1.111上D:/zookeeper分別解壓安裝zookeeper-3.4.6
2:D:/zookeeper/zookeeper-3.4.6/conf/zoo.cfg添加如下配置
initLimit=5
syncLimit=2
tickTime=2000
dataDir=D:/zookeeper/zookeeper-3.4.6/data
clientPort=2181
server.1=192.168.1.113:2888:3888
server.2=192.168.1.111:2888:3888
tickTime:這個時間是作為 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
dataDir:顧名思義就是 Zookeeper 保存數據的目錄,默認情況下,Zookeeper 將寫數據的日志文件也保存在這個目錄裡。
clientPort:這個端口就是客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。
initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這裡所說的客戶端不是用戶連接 Zookeeper 服務器的客戶端,而是 Zookeeper 服務器集群中連接到 Leader 的 Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過 5個心跳的時間(也就是 tickTime)長度後 Zookeeper 服務器還沒有收到客戶端的返回信息,那麼表明這個客戶端連接失敗。總的時間長度就是 5*2000=10 秒
syncLimit:這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒
server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的 ip 地址;C 表示的是這個服務器與集群中的 Leader 服務器交換信息的端口;D 表示的是萬一集群中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。如果是偽集群的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。(這裡是摘抄- -!~)
3:D:/zookeeper/zookeeper-3.4.6/data下創myid文件 myid的文件內容分別為:1、2 上邊下邊配置文件中192.168.1.113servier.X中的X值,如ip113的電腦,myid為1)
4:分別啟動兩個zookeeper,在一台機器上創建節點,另一個機器能同步過去證明成功
5:zookeeper服務器推薦用奇數個,半數以上服務正常,整個服務就正常,本人條件有限只配置兩個