Spring MVC + zookeeper + Dubbo 配置

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

二、在conf目錄下,有一個zoo_sample.cfg文件,將其命名爲zoo.cfg,而且修改配置文件apache

 

 

    如下是對各個參數的說明:瀏覽器

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

                        dataDic:Zookeeper保存數據的目錄,默認狀況下,Zookeeper將寫數據的日誌也保存在這個目錄裏面。安全

                        dataLogDir:Zookeeper保存日誌文件的目錄服務器

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

由於Zookeeper須要默認佔用8080這個端口,而zookeeper最近的版本中有個內嵌的管理控制檯是經過jetty啓動,也會佔用8080 端口。 併發

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

            (1).刪除jetty。webapp

            (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端口。

 

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

        在提供者的dubbo配置文件中,通常都配置了

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

 

 

         代表dubbo協議在20880端口暴露服務,固然若是不配置,默認使用20880端口暴露服務,全部消費者都是經過20880端口進行,對於消費者而言,提供者服務8080端口是透明的,也就是說提供者服務器端口號能夠任意改變,服務也不會有任何影響,消費者無需關心。

    因此須要提供者開放20880端口給消費者,而不是8080端口給消費者。

二、端口開放狀況

    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;

三、總結一下

    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,啓動咱們的服務提供者和消費者便可查看到

 

 

相關文章
相關標籤/搜索