Spring MVC + zookeeper + Dubbo 配置


1、首先下載zookeeper注冊中心,下載地址:http://www.apache.org/dyn/closer.cgi/zookeeper/ 

2、在conf目錄下,有一個zoo_sample.cfg文件,將其命名為zoo.cfg,並且修改配置文件

 

 

    以下是對各個參數的說明:

                        tickTime:這個時間是Zookeeper服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個tickTime時間就會發送一個心跳。

                        dataDic:Zookeeper保存數據的目錄,默認情況下,Zookeeper將寫數據的日志也保存在這個目錄里面。

                        dataLogDir:Zookeeper保存日志文件的目錄

                        clientPort:客戶端連接Zookeeper服務器的端口,Zookeeper會監聽這個端口,接受客戶端的訪問請求。

因為Zookeeper需要默認占用8080這個端口,而zookeeper最近的版本中有個內嵌的管理控制台是通過jetty啟動,也會占用8080 端口。 

            通過查看zookeeper的官方文檔,發現有3種解決途徑:

            (1).刪除jetty。

            (2)修改端口。

                  修改方法的方法有兩種,一種是在啟動腳本中增加 -Dzookeeper.admin.serverPort=你的端口號.一種是在zoo.cfg中增加admin.serverPort=沒有被占用的端口號

            (3)停用這個服務,在啟動腳本中增加"-Dzookeeper.admin.enableServer=false"

    3.雙擊bin文件夾中的zkServer.cmd啟動注冊中心服務。

 另外說一下dubbo+Zookeeper與提供者provider、消費者consumer之間的通信過程、

    Zookeeper作為注冊中心,使用單獨的服務器,占用2181端口。

     dubbo-admin作為監控中心,與Zookeeper使用相同的服務器,tomcat部署占用8080端口。

     provider作為提供者,使用單位服務器,tomcat部署占用8080端口,使用dubbo協議開放20880端口。

     consumer作為消費者,單獨使用服務器,tomcat部署占用8080端口。

 

1、用dubbo協議在20880端口暴露服務

        在提供者的dubbo配置文件中,一般都配置了

<dubbo:protocolname="dubbo"port="20880"/>

 

 

         表明dubbo協議在20880端口暴露服務,當然如果不配置,默認使用20880端口暴露服務,所有消費者都是通過20880端口進行,對於消費者而言,提供者服務8080端口是透明的,也就是說提供者服務器端口號可以任意改變,服務也不會有任何影響,消費者無需關心。

    所以需要提供者開放20880端口給消費者,而不是8080端口給消費者。

2、端口開放情況

    Zookeeper作為注冊中心,provider注冊服務、consumer訂閱服務、dubbo-admin監控服務,所以Zookeeper注冊中心的2181端口需要向provider、consumer、dubbo-admin開放;

    一把你情況下,dubbo-admin監控中心與Zookeeper注冊中心部署在相同的服務器上,Zookeeper可以不考慮端口開放給dubbo-admin的情況;

    cunsumer訂閱服務,即拿到了provider在20880端口暴露的服務,當consumer請求服務是,直接從consumer跳到provider,而不是consumer到Zookeeper再到provider,所以,provider的2080端口無需開放給Zookeeper;

    同理,provider相應服務時,也是直接從provider到consumer,而不是provider到zookeeper再到consumer,所以consumer的8080無需開放 給Zookeeper;

3、總結一下

    Zookeeper的2181開放給provider、 consumer、dubbo-admin

    provider的20880開放給所有consumer,但是8080服務端口可以屏蔽

    consumer的8080開放給所有的provider

    dubbo-admin的8080開放給管理員用戶,便於通過瀏覽器監控注冊中心服務的情況。

    注冊中心只負責服務注冊和目錄發布,安全授權,實際的服務訪問仍然是兩個組件之間的點對點連接完成,這種方式下整個架構獲取更高的性能,同事服務管理平台也不容易成為大並發服務訪問下的單點瓶頸。

附:Dubbo的管理頁面

 

需要下載:dubbo-admin-2.5.3的war

下載地址:http://download.csdn.net/detail/u013286716/7041185

 

操作如下:

 

1,替換掉tomcat/webapps下自帶的ROOT文件夾內容(即替換tomcat的啟動主頁),將下載的war包解壓到webapps/ROOT中,直接替換即可

 

   注意:jdk不要使用1.8,本次實驗使用的為1.7

 

2,啟動tomcat,訪問ip:8080即可或者如果是本地的話使用localhost:8080

輸入用戶名密碼,在E:\apache-tomcat-7.0.6-dubbo\webapps\ROOT\WEB-INF下的dubbo.properties文件中即可查看到,如:

 

3,訪問 http://localhost:8080/dubbo-admin-2.5.3

 

 

 

 

4,啟動我們的服務提供者和消費者即可查看到

 

 

 


免責聲明!

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



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