Linux上安裝Zookeeper以及一些注意事項
最近打算出一個系列,介紹Dubbo的使用。
分散式應用現在已經越來越廣泛,Spring Could也是一個不錯的一站式解決方案,不過據我瞭解國內目前貌似使用阿里Dubbo的公司比較多,一方面這個框架也確實很OK,另一方面可能也是因為Dubbo的中文文件比較全的緣故,據Dubbo官網上的訊息,阿里已經重新開始了對Dubbo的維護,這也算是使用Dubbo的網際網路公司的福音了吧。OK,廢話不多說,今天我們就先來看看如何在Linux上安裝zookeeper。
瞭解過Dubbo的小夥伴都知道,Dubbo官方建議我們使用的註冊中心就是zookeeper,zookeeper本來是Hadoop的一個子專案,現在發展成了Apache的頂級專案,看名字就知道Zookeeper就是動物園管理員,管理Hadoop(大象)、Hive(蜂房/蜜蜂)等動物。Apache上的Zookeeper分Linux版和Windows版,但是考慮到實際生產環境都是Linux,所以我們這裡主要介紹Linux上Zookeeper的安裝,Windows上Zookeeper的安裝則比較簡單,下載解壓即可,和Tomcat差不多。
OK,廢話不多說,接下來我們就來看看zookeeper的安裝步驟。
環境:
1.VMware® Workstation 12 Pro
2.CentOS7
3.zookeeper-3.4.10(本文寫作時的最新穩定版)
安裝步驟
1.下載zookeeper
zookeeper下載地址如下,小夥伴們可以在第一個地址中選擇適合自己的zookeeper版本,也可以直接點選第二個地址下載我們本文使用的zookeeper。
2.將下載好的zookeeper上傳到Linux伺服器上
上傳方式多種多樣,我這裡採用了xftp,小夥伴們也可以直接使用putty上傳,上傳結果如下:
3.將檔案解壓到/opt目錄下
4.進入到剛剛解壓好的目錄中,建立兩個資料夾,分別是data和logs,如下:
5.將解壓後zookeeper-3.4.10資料夾下的zoo_sample.cfg檔案拷貝一份命名為zoo.cfg,如下:
6.修改zoo.cfg檔案,新增data和log目錄,如下:
1.2888 埠號是zookeeper服務之間通訊的埠
2.3888 是zookeeper 與其他應用程式通訊的埠
3.initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這裡所說的客戶端不是使用者連線 Zookeeper伺服器的客戶端,而是 Zookeeper 伺服器叢集中連線到 Leader 的 Follower 伺服器)初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 伺服器還沒有收到客戶端的返回資訊,那麼表明這個客戶端連線失敗。總的時間長度就是 5*2000=10 秒。
4.syncLimit:這個配置項標識 Leader 與 Follower 之間傳送訊息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒
5.server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號伺服器;B 是這個伺服器的IP地址或/etc/hosts檔案中映射了IP的主機名;C 表示的是這個伺服器與叢集中的 Leader 伺服器交換資訊的埠;D 表示的是萬一叢集中的 Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的 Leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。
7.在 dataDir=/opt/zookeeper-3.4.10/data下建立 myid檔案 編輯myid檔案,並在對應的IP的機器上輸入對應的編號。如在zookeeper上,myid檔案內容就是1。如果只在單點上進行安裝配置,那麼只有一個server.1。如下:
8.在.bash_profile檔案中增加zookeeper配置:
9.使配置生效
10.關閉防火牆
11.啟動並測試
啟動之後如果能看到Mode:standalone就表示啟動成功了。
12.關閉zookeeper
13.配置開機啟動zookeeper
注意注意 在centos7中,/etc/rc.local的許可權被降低了,所以需要執行如下命令賦予其可執行許可權
chmod +x /etc/rc.d/rc.local
OK,以上就是我們在CentOS7中安裝zookeeper的全過程,做好這一切之後我們就可以在Dubbo中使用這個註冊中心了,這個我們放在下一篇部落格中介紹。
更多JavaEE資料請關注公眾號: