Windows下zookeeper注冊中心的安裝和啟動


http://blog.csdn.net/aqsunkai/article/details/51683632

zookeeper的安裝支持單機模式和集群模式

下載地址:http://www.apache.org/dyn/closer.cgi/zookeeper/,當前穩定版本為3.4.8

單機模式

修改zookeeper配置文件zoo.cfg

解壓后進入conf目錄,修改zoo_sample.cfg文件名為:zoo.cfg,這是因為zookeeper啟動時默認加載zoo.cfg配置文件。修改zoo.cfg文件內容如下:

[html]  view plain  copy
 
 print?
  1. # The number of milliseconds of each tick  
  2. #tickTime:這個時間是作為 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。  
  3. #默認情況下最小的會話超時時間為兩倍的tickTime  
  4. tickTime=2000  
  5. # The number of ticks that the initial   
  6. # synchronization phase can take  
  7. #zookeeper集群中的包含多台server, 其中一台為leader, 集群中其余的server為follower. initLimit參數配置初始化連接時,   
  8. #follower和leader之間的最長心跳時間. 此時該參數設置為5, 說明時間限制為5倍tickTime, 即5*2000=10000ms=10s.  
  9. initLimit=5  
  10. # The number of ticks that can pass between   
  11. # sending a request and getting an acknowledgement  
  12. #該參數配置leader和follower之間發送消息, 請求和應答的最大時間長度. 此時該參數設置為2, 說明時間限制為2倍tickTime, 即4000ms.  
  13. syncLimit=2  
  14. # the directory where the snapshot is stored.  
  15. # do not use /tmp for storage, /tmp here is just   
  16. # example sakes.  
  17. #dataDir:顧名思義就是 Zookeeper 保存數據的目錄,默認情況下,Zookeeper 將寫數據的日志文件也保存在這個目錄里。  
  18. dataDir=D:\\zookeeper-3.4.8\\data  
  19. #dataLogDir:顧名思義就是 Zookeeper 保存日志文件的目錄  
  20. dataLogDir=D:\\zookeeper-3.4.8\\log  
  21. # the port at which the clients will connect  
  22. #clientPort:這個端口就是客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。  
  23. clientPort=2181  
  24. # the maximum number of client connections.  
  25. # increase this if you need to handle more clients  
  26. #maxClientCnxns:限制連接到 ZooKeeper 的客戶端的數量  
  27. #maxClientCnxns=60  
  28. #  
  29. # Be sure to read the maintenance section of the   
  30. # administrator guide before turning on autopurge.  
  31. #  
  32. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance  
  33. #  
  34. # The number of snapshots to retain in dataDir  
  35. #autopurge.snapRetainCount=3  
  36. # Purge task interval in hours  
  37. # Set to "0" to disable auto purge feature  
  38. #autopurge.purgeInterval=1  

需要在zookeeper-3.4.8文件夾下新建data和log文件夾

啟動zookeeper

cmd命令進入zookeeper-3.4.8\bin目錄,啟動zkServer.cmd

或者直接雙擊zkServer.cmd啟動,雙擊后窗口不會關閉,如果關閉了表示未啟動成功

如果jdk環境變量設置了,但是提示JAVA_HOME找不到,則需要修改該目錄下的zkEnv.cmd關於JAVA_HOME的一部分

 

[html]  view plain  copy
 
 print?
  1. set JAVA_HOME="D:\Program Files\Java\jdk1.7.0_75"  
  2.   
  3. if not defined JAVA_HOME (  
  4.   echo Error: JAVA_HOME is not set.  
  5.   goto :eof  
  6. )  
  7.   
  8. if not exist %JAVA_HOME%\bin\java.exe (  
  9.   echo Error: JAVA_HOME is incorrectly set.  
  10.   goto :eof  
  11. )  
  12.   
  13. set JAVA=%JAVA_HOME%\bin\java  

 

 

偽集群模式

 

所謂偽集群, 是指在單台機器中啟動多個zookeeper進程,,並組成一個集群, 以啟動3個zookeeper進程為例。

把zookeeper-3.4.8文件夾復制2份,這三個文件夾分別命名為zookeeper-3.4.8-1、zookeeper-3.4.8-2、zookeeper-3.4.8-3

下面是zookeeper-3.4.8-1/conf文件夾下的zoo.cfg文件中配置的幾個選項:

[html]  view plain  copy
 
 print?
  1. dataDir=D:\\zookeeper-3.4.8-1\\data  
  2. dataLogDir=D:\\zookeeper-3.4.8-1\\log  
  3. clientPort=2181  
  4. server.1=127.0.0.1:8281:7271  
  5. server.2=127.0.0.1:8282:7272  
  6. server.3=127.0.0.1:8283:7273  

server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集群中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口. 由於配置的是偽集群模式, 所以各個server的B, C參數必須不同。

參照zookeeper-3.4.8-1/conf文件夾下zoo.cfg文件,分別配置zookeeper-3.4.8-2/conf/zoo.cfg、zookeeper-3.4.8-3/conf/zoo.cfg文件,只需要修改dataDir、dataLogDir、clientPort即可。

在三個zoo.cfg文件中設置的dataDir目錄下新建myid文件,寫入一個數字, 該數字表示這是第幾號server,該數字必須和zoo.cfg文件中的server.X中的X對應。如D:\\zookeeper-3.4.8-1\\data\\myid文件中數字是1。

然后就是分別啟動三個zookeeper了。

集群模式

集群模式的配置和偽集群基本一致.
由於集群模式下, 各server部署在不同的機器上, 因此各server的conf/zoo.cfg文件可以完全一樣。

下面是一個示例:

 

[html]  view plain  copy
 
 print?
  1. tickTime=2000  
  2. initLimit=5  
  3. syncLimit=2  
  4. dataDir=D:\\zookeeper-3.4.8\\data  
  5. dataLogDir=D:\\zookeeper-3.4.8\\log  
  6. clientPort=2181  
  7. server.21=192.168.0.1:8280:7270  
  8. server.22=192.168.0.2:8280:7270  
  9. server.23=192.168.0.3:8280:7270  

 

 

示例中部署了3台zookeeper server,分別部署在192.168.0.1、192.168.0.2、192.168.0.3上。 需要注意的是,各server的dataDir目錄下的myid文件中的數字必須不同。

192.168.0.1server的myid為21,192.168.0.2server的myid為22,192.168.0.3server的myid為23。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM