1. 程式人生 > >Dubbo-Admin管理平臺和Zookeeper註冊中心的搭建

Dubbo-Admin管理平臺和Zookeeper註冊中心的搭建

  ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、名字服務、分散式同步、組服務等。

       Dubbo是Alibaba開源的分散式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地鬆耦合)。從服務模型的角度來看,Dubbo採用的是一種非常簡單的模型,要麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象出服務提供方(Provider)和服務消費方(Consumer)兩個角色。關於註冊中心、協議支援、服務監控等內容。

本機環境:

           

 JDK:1.8

 Maven:apache-maven-3.2.1

 zookeeper:zookeeper-3.4.6

 Tomcat:apache-tomcat-7.0.62

 Dubbo-admin:dubbo-admin-2.5.4-SNAPSHOT.war 這是我自己本地打包生成的(下載地址:http://download.csdn.net/detail/evankaka/9054273)

一、zookeeper安裝與啟動


        首先需要安裝JdK,從Oracle的Java網站下載,安裝很簡單,就不再詳述。其中zookeeper的下載地址是http://www.apache.org/dyn/closer.cgi/zookeeper/,下載後直接解壓,不用安裝。

        在你執行啟動指令碼之前,還有幾個基本的配置項需要配置一下,Zookeeper 的配置檔案在 conf 目錄下,這個目錄下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是將 zoo_sample.cfg 改名為 zoo.cfg,因為 Zookeeper 在啟動時會找這個檔案作為預設配置檔案。下面詳細介紹一下,這個配置檔案中各個配置項的意義。


# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=D:\\Java\\Tool\\zookeeper-3.4.6\\tmp
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

dataDir=/tmp/zookeeper
改成如下:

dataDir=D:\\Java\\Tool\\zookeeper-3.4.6\\tmp


這裡可以自定義

    tickTime:這個時間是作為 Zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
    dataDir:顧名思義就是 Zookeeper 儲存資料的目錄,預設情況下,Zookeeper 將寫資料的日誌檔案也儲存在這個目錄裡。
    dataLogDir:顧名思義就是 Zookeeper 儲存日誌檔案的目錄
    clientPort:這個埠就是客戶端連線 Zookeeper 伺服器的埠,Zookeeper 會監聽這個埠,接受客戶端的訪問請求。
 
當這些配置項配置好後,你現在就可以啟動 Zookeeper 了,啟動後要檢查 Zookeeper 是否已經在服務,可以通過 netstat – ano 命令檢視是否有你配置的 clientPort 埠號在監聽服務

當這些配置項配置好後,你現在就可以啟動 Zookeeper 了,啟動後要檢查 Zookeeper 是否已經在服務,可以通過 netstat – ano 命令檢視是否有你配置的 clientPort 埠號在監聽服務
 

單機安裝非常簡單,只要獲取到 Zookeeper 的壓縮包並解壓到某個目錄如:D:\Java\Tool\zookeeper-3.4.6下,Zookeeper 的啟動指令碼在 bin 目錄下,Windows 下的啟動指令碼是bin檔案下的如,D:\Java\Tool\zookeeper-3.4.6\bin\ zkServer.cmd。

啟動如下:

輸入JPS,出現如下,也說明啟動成功

上面的黑色框框不關,就表示註冊中心一直開關的,一定要記得註冊中心要在程式執行之前就開啟,而且是一直開著的

二、Dubbo-admin管理平臺的安裝


1.1、dubbo-admin 本地編譯打包
        因為zookeeper只是一個黑框,我們無法看到是否存在了什麼提供者或消費者,這時就要藉助Dubbo-Admin管理平臺來實時的檢視,也可以通過這個平臺來管理提者和消費者。
        dubbo-admin.war可在網上百度去下載,但是我下載了好幾個war包,釋出上去服務啟動都報錯,這個時候大概是我們系統的JDK和編譯dubbo-admin.war的JDK版本不同導致的了。所以我之後直接下載了dubbo-master的原始碼,然後自己編譯了一個war包,這樣就不會存在啟動報錯的問題了。(這裡強烈建議自己編譯一個,網上找的基本都不行,試了很多個,最後還是自己來搞)其中自己電腦編譯的過程如下,一定在安裝maven和jdk!

dubbo的所有原始碼可在 https://github.com/apache/incubator-dubbo 上下載。下好之後解壓

解壓後的檔案內容,這裡你其它的都不用去管,只管dubbo-admin.

因為這裡只需要編譯Dubbo-Admin,所以開啟Cmd,然後進入解壓路徑 E:\下載\dubbo-master\dubbo-master\dubbo-admin,有人把整個工程都編譯了,其實沒有必要,只需要編譯dubbo-admin即可,有什麼依賴的,maven會自動幫你解決。整個過程如下:

首先,通過cmd進入目錄,輸入命令

mvn package -Dmaven.skip.test=true

這裡要自己把maven的環境變數配置好,這裡的-Dmaven.skip.test表示不打包測試包。然後結果如下,表示打包成功

再開啟專案的檔案所在位置:E:\下載\dubbo-master\dubbo-master\dubbo-admin\target

target表示構建的本地路徑,開啟,裡面有個檔案dubbo-admin-2.5.4-SNAPSHOT.war表示打包成功,這個檔案得放在Tomcat下才能執行。

這裡我已上傳這個war包,下載地址:http://download.csdn.net/detail/evankaka/9054273

1.2、dubbo-admin安裝
 

       dubbo-admin已打包成功,接下來就容易很多了

1. 安裝
將 dubbo-admin-2.5.4-SNAPSHOT.war 拷入 tomcat  webapps中


2. 配置
修改tomcat的埠8088,修改方法如下,打到conf下的檔案 server.xml,因為zookeeper會用到8080的埠,所以為了不衝突,把Tomcat的埠改一下。記得一定要改!!!

然後修改

 

3、啟動一下Tomcat,讓它把war解壓了

過程如下

然後啟動

發現webapp下多了一個資料夾

再把 Tomcat給關了,直接stop,上面的按鈕

 

4、修改dubbo.properties

D:\Java\Tool\apache-tomcat-7.0.62\webapps\dubbo-admin-2.5.4-SNAPSHOT\WEB-INF

是否是如下內容:

 

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest


如果是,就不用改,這裡的127.0.0.1對應的是自己的電腦IP,因為這裡zookeeper也在自己電腦上,所以要這麼寫才行。一般情況下都是不需要改的,因為初始都是本地的IP地址。但還是看看比較安全

 


5. 訪問:

這下全部都配置好了,首先,一定要先啟動zookeeper啟動後再去啟動tomcat!一定要先啟動zookeeper啟動後再去啟動tomcat!一定要先啟動zookeeper啟動後再去啟動tomcat!重要的事情三遍!

啟動zookeeper

啟動tomcat

訪問http://localhost:8088/dubbo-admin-2.5.4-SNAPSHOT/ 一定要注意名一定要和你webapp下的工程名一樣!!

彈出如下:

輸入使用者名稱和密碼都是root

就會看到:

出現以下介面說明安裝配置成功,登入密碼為root/root