Dubbo進階--zookeeper注冊中心 -开发者知识库

Dubbo進階--zookeeper注冊中心 -开发者知识库,第1张

  上篇已經介紹了Dubbo的基本概念,我們知道了Dubbo提供方會將自己的服務注冊到注冊中心,使服務暴露出來,實現透明化。這節就介紹一下注冊中心的搭建

  目前常用的注冊中心主要有四種,如下:

  Dubbo進階--zookeeper注冊中心 -开发者知识库,第2张

   通過上述四種方法的對比,我選擇了第一種zookeeper注冊中心。

   搭建環境:

    Linux:CentOS-7.0-1406-x86_64

    jdk:jdk-7u76-linux-x64.tar.gz

    zookeeper:zookeeper-3.4.6.tar.gz

   搭建步驟:(jdk環境不再敘述)

    1、修改操作系統的/etc/hosts 文件中添加:

      # zookeeper servers
     192.168.91.130 dubbo-zookeeper  

      注:此處是為了映射自己當前的ip地址,也可不進行設置。(建議設置,這樣以后如果ip地址更換之后,只需要修改此文件即可,其他的依賴項不需要修改)      

   2、上傳並解壓zookeeper安裝包,我的上傳路徑為/usr/local/dubbo-files

      命令:# tar -zxvf zookeeper-3.4.6.tar.gz –C /指定目錄

      $ tar –zxvf zookeeper-3.4.6.tar.gz –C /usr/local/zookeeper

   3、在/usr/local/zookeeper目錄下創建以下目錄:

      $ mkdir data
      $ mkdir logs

   4、將/usr/local/zookeeper/conf目錄下的zoo_sample.cfg 文件拷貝一份,命名為為zoo.cfg

      $ cp zoo_sample.cfg  zoo.cfg

   5、修改zoo.cfg文件:

      $ vi zoo.cfg

     Dubbo進階--zookeeper注冊中心 -开发者知识库,第3张

    其中:

      2888 端口號是 zookeeper 服務之間通信的端口。
      3888 是 zookeeper 與其他應用程序通信的端口。
      192.168.91.130 是本機ip,這里最好設置成第一步中設置的映射主機名,即dubbo-zookeeper。


      initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這里所說的客戶端不是用戶連接 Zookeeper 服務器的客戶端,而是 Zookeeper 服務器集群中連接到Leader 的 Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度后 Zookeeper 服務器還沒有收到客戶端的返回信息,那么表明這個客戶端連接失敗。總的時間長度就是5*2000=10 秒。
      syncLimit:這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個tickTime 的時間長度,總的時間長度就是 2*2000=4秒。
      server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號服務器; B 是這個服務器的 IP 地址或/etc/hosts 文件中映射了 IP 的主機名; C 表示的是這個服務器與集群中的 Leader 服務器交換信息的端口; D 表示的是萬一集群中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。如果是偽集群的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。

   6、在/usr/local/zookeeper/data 下創建文件myid文件,並編輯文件,文件內容對應自己在第五步中設置的server后的值,即:1

      $ vi myid

   7、為zookeeper設置環境變量

     $ vi /etc/profile

      Dubbo進階--zookeeper注冊中心 -开发者知识库,第4张

   8、設置防火牆,打開第五步中所使用的端口2181、 2888、 3888

     編輯/etc/sysconfig/iptables
      # vi /etc/sysconfig/iptables
     增加以下 3 行:
       -A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
       -A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
       -A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
     重啟防火牆:
       # service iptables restart

     在我的虛擬機中暫時沒法設置iptables,因為是測試,所以直接關閉防火牆

       $ systemctl disable firewalld.service

    9、啟動並測試zookeeper,進入目錄/usr/local/zookeeper/bin

      啟動:$ zkServer.sh start

      查看進程:jps

      Dubbo進階--zookeeper注冊中心 -开发者知识库,第5张

       其中, QuorumPeerMain 是 zookeeper 進程,啟動正常

      查看狀態:$ zkServer.sh status

      查看日志:$ tail -500f zookeeper.out

   10、停止zookeeper進程

      $ zkServer.sh stop

   

   至此,zookeeper注冊中心已經搭建好了。

     

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复