dubbo的實際使用中,基本都是使用zookeeper來管理它的服務,以及實現分佈式調用。至於zookeeper是什麼,具備什麼用戶,你們能夠百度搜索瞭解一下。實際生產環境中,zookeeper的應用服務數目,基本都是奇數個,這是因爲它的選舉算法決定的:zookeeper有選舉leader的概念,當某臺服務獲得半數以上的投票是它就能夠成爲這個集羣的leader,舉個例子,有5個zookeeper應用,超過半數就是3個;若是是6個zookeeper應用,超過半數也是3個,這樣咱們選擇5個zookeeper應用就夠支撐了。一樣,若是zookeeper集羣超過半數掛起,整個集羣也會掛起,選擇奇數個數也足夠支撐。html
1、安裝過程算法
從 http://zookeeper.apache.org/releases.html 這個地址下載zookeeper安裝包,下載完成後我是放在/usr/loca/www目錄下面,如圖所示:apache
值得注意地是我這裏還有一個data目錄,後面配置zookeeper一些存儲文件會用獲得,我打算把它們指向這個目錄下。分佈式
zookeeper安裝比較簡單,它對主流的Linux系統兼容性都算比較好,接下來,咱們就解壓開這個tar.gz包,執行以下命令:日誌
tar -zxvf zookeeper-3.3.6.tar.gz,能夠看到系統生成以下目錄:server
2、參數配置htm
進入這個生成的目錄zookeeper-3.3.6目錄,找到conf目錄:集羣
複製裏面的zoo_sample.cfg文件到zoo.cfg,具體執行以下命令:監控
cp zoo_sample.cfg zoo.cfg兼容性
而後編輯zoo.cfg 文件,vi zoo.cfg,將裏面的兩行內容變動爲:
dataDir=/usr/local/www/data
dataLogDir=/usr/local/www/data
分別放置數據和日誌。
3、zookeeper啓動
bin/zkServer.sh start ,到此一個單機模式的zookeeper就配置完成,至於集羣模式的zookeeper機器有限,這裏不作介紹,集羣配置過程也不復雜,能夠自行百度瞭解。這裏給你們介紹一個zookeeper簡易客戶端(ZooInspector),能夠監控zookeeper狀態。下圖是我監控簡圖,全部zookeeper已經開始工做:
四,本身碰到的問題
在zookeeper啓動後,data目錄會有一個zookeeper_server.pid的文件,裏面記錄了zookeeper運行的pid號,這個pid號要跟真實運行的zookeeper的pid號保持一致,否則後續dubbo運行會出問題,可能消費者會調用不到提供者所提供的服務,怎麼看會不會一致,這也是很簡單,以下圖:
上面兩圖就能夠看出pid是一致,那什麼狀況會不一致,就是可能在zookeeper運行狀況下,重複執行bin/zkServer.sh start會出現這個狀況。