【ZooKeeper怎麼玩】之四:ZK的部署,zookeeperzk部署
參見我的個人部落格
ZooKeeper有兩種部署方式:叢集模式和單機模式.叢集模式一般用於生產環境,對系統的可用性要求較高,不會因為單點故障而導致整個系統不可用.而單機模式是ZooKeeper的最低要求,僅供平時測試,開發時使用.
叢集部署
首先需要準備至少三台伺服器來搭建ZooKeeper叢集,為什麼至少三台伺服器呢?參見為什麼推薦部署ZooKeeper的機器是奇數呢.
為什麼推薦部署ZooKeeper的機器是奇數呢
官網強烈建議部署zookeeper機器的數量是奇數的,原因在於ZooKeeper的選舉機制,選票超過半數的機器才有可能成為Leader,因此當整個叢集中只有兩台伺服器或者整個叢集超過半數的機器都掛掉時,是無法選舉出Leader的.其實這是一個叢集資源利用最大化的問題,例如叢集中有三個節點,允許掛掉一個節點,這時還剩餘兩個節點,超過半數;而叢集中有四個節點時,最多也只能掛掉一個節點,因為如果再掛掉一個,整個叢集就剩下兩個節點,無法滿足超過叢集數的半數這個條件.綜合來看兩者的容災能力是一樣的.so,你懂的
偽叢集部署
學習研究時更多的推薦大家使用偽叢集模式,將需要多個硬體的要求改成在一台機器上.實現起來也很簡單,把ZooKeeper的壓縮包解壓到三個不同的目錄,將上面的設定檔,只修改server啟動連接埠和client監聽連接埠,ip不變.即可
系統要求
作業系統上,ZooKeeper對於主流的作業系統都是支援的,比如GNU/Linux,Sun Solaris,FreeBSD,MacOSX,Win32,Win64等(好像主流的作業系統也就這些了呵呵).軟體上,ZooKeeper是由java語言編寫的,需要至少使用JDK6或者更高的版本.FreeBSD作業系統的話,需要openjdk7.
ZooKeeper的定位就是叢集,因此在學習研究推薦使用叢集部署的方式,不過考慮到平時開發環境中伺服器資源有限,也可以使用單機部署,學習更加方便.
單機部署
單機部署更是簡單,只需要把叢集部署中第3步的配置修改如下配置,啟動即可,so easy!
tickTime=2000initLimit=10syncLimit=5dataDir=/data/zookeeperclientPort=2181
結束
總體來說,zookeeper的部署很簡單,在研究學習過程中,還是推薦大家使用偽叢集模式部署.在生產環境使用zookeeper時還需要根據硬體條件調整zookeeper的相應配置