Dubbo註冊中心和管理平臺(Dubbo第一炮)

說明:大概是3年前在一個Saas平臺中接觸到dubbo,此博文是複習筆記,分享給需要的讀者。學習dubbo要有一定的java和maven基礎,因爲此演示系統全程都離不開maven。此演示側重Registry(Zookeeper)筆者稱其爲”Dubbo第一炮”。 (很久沒玩dubbo了,博文用於複習與交流)

此演示主要內容
在這裏插入圖片描述

  1. Dubbo簡述

(i) 什麼是dubbo,它是用來幹嘛的?
官方定義:
Apache Dubbo™ (incubating) is a high-performance, java based open source RPC framework。

民間定義:高性能的分佈式框架或微服務框架。
說明:關於dubbo的發音,筆者喜歡叫它”打波”,有的人叫它“丟波”,呵呵……

(ii) Dubbo工作原理圖

在這裏插入圖片描述

  1. zookeeper簡介和原理

    (i)簡介:
    zookeeper是一個開源的分佈式協調服務,由雅虎創建,是 Google Chubby 的開源實現。
    分佈式應用程序可以基於 ZooKeeper 實現諸如數據發佈/訂閱、負載均衡、命名服務、分佈式協調/通知、集羣管理、Master 選舉、配置維護,名字服務、分佈式同步、分佈式鎖和分佈式隊列、隊列管理、組服務等功能。

    (ii) zookeeper原理
    zookeeper是以Fast Paxos算法爲基礎的,Paxos 算法存在活鎖的問題,即當有多個proposer交錯提交時,
    有可能互相排斥導致沒有一個proposer能提交成功,而Fast Paxos作了一些優化,通過選舉產生一個leader (領導者),
    只有leader才能提交proposer,具體算法可見Fast Paxos。因此,要想弄懂ZooKeeper首先得對Fast Paxos有所瞭解。

    ZooKeeper的基本運轉流程:
    1、選舉Leader。
    2、同步數據。
    3、選舉Leader過程中算法有很多,但要達到的選舉標準是一致的。
    4、Leader要具有最高的執行ID,類似root權限。
    5、集羣中大多數的機器得到響應並接受選出的Leader

3.zookeeper實戰(dubbo環境搭建)
Dubbo原理圖中看到註冊中心一職,其實就是由zookeeper來擔當的。當然還有其它的工具也能擔當,比如: Multicast, Simple等。

3.1 zookeeper下載安裝
首先需要安裝JdK,從Oracle的Java網站下載,安裝很簡單,就不再詳述。
其中zookeeper的下載地址是:
http://www.apache.org/dyn/closer.cgi/zookeeper/ (這裏的壓縮包不用安裝,直接解壓即可)
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/(筆者下載的是這個
zookeeper-3.4.12.tar.gz版本)

3.2 創建zookeeper啓動時加載的配置文件
在 “zookeeper安裝目錄”\conf目錄下,拷貝zoo_sample.cfg並重命令爲zoo.cfg,因爲 Zookeeper 在啓動時會加載此名稱的文件作爲默認配置文件。
此配置文件屬性項說明:

    (1)tickTime: Zookeeper服務器之間或客戶端與服務器之間維持心跳的時間間隔,單位毫秒
	(2) initLimit: Zookeeper  集羣時leader與follower服務器之間初始化連接時,維持心跳的時間長度,
		超過這個時間服務器之間的連接則失敗,單位毫秒(多臺zookeeper服務器集羣時選舉一臺作爲
		leader其它的作爲follower)
	(3) syncLimit: Leader 與 Follower 之間發送消息,請求和應答時間長度。
	(4)dataDir:存儲快照的目錄。不要將/tmp用於存儲數據目錄. 默認情況下,
	               Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。
	(5) dataLogDir:日誌文件存放目錄
	(6)clientPort:這個端口就是客戶端連接 Zookeeper 服務器的端口,
		Zookeeper 會監聽這個端口,接受客戶端的訪問請求

3.3 啓動Zookeeper
(i)在zookeeper安裝目錄\bin目錄下的雙週zkServer.cmd,成功啓動後會看到以下輸出信息:
[myid:] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181

(ii)開一個新的cmd窗口,輸入jps,看到以下信息,說明zookeeper訪問成功
	C:\Users\Administrator.FV>jps
	6500 QuorumPeerMain
	6260
	2656 Jps

(iii)Ctrl + c 或直接關閉彈出來的cmd窗口來關閉zookeeper

注意:這是一種獨佔式的程序運行方式(與後臺進程不一樣,獨佔式運行的程序不能關閉,關閉了窗口程序也就關閉了,那麼zookeeper提供的服務也沒了)

4.dubbo-admin管理平臺安裝

(i) 簡介:

	Where is dubbo-admin?
		   dubbo-admin has been moved from core repository to 
		 https://github.com/apache/incubator-dubbo-ops since 2.6.1
		dubbo與jdk版本匹配,Currently, dubbo keeps 3 versions evolve in parallel:

		2.7.x (master): requires Java 1.8, major feature branch.

		2.6.x: requires Java 1.6, minor feature & bugfix branch, GA, production ready.

		2.5.x: requires Java 1.6, maintenance branch, only accept security vulnerability 
		       and  critical bugfix, expected to be EOL soon.

(ii) dubbo-admin的作用
對服務提供者、服務消費者、訪問量、負載均衡等功能的管理和維護

(iii) 下載和打包dubbo-admin源碼成dubbo-admin.war
環境說明:設置好jdk,maven環境後,在cmd中輸入命令:mvn -v命令得到的信息
包括jdk,maven,platform encoding,OS如下:

			Apache Maven 3.0.5
			Maven home: D:\maven\apache-maven-3.0.5
			Java version: 1.8.0_31, vendor: Oracle Corporation
			Java home: D:\Program Files\Java\jdk1.8.0_31\jre
			Default locale: zh_CN, platform encoding: GBK
			OS name: "windows 7", version: "6.1", arch: "x86", family: "dos"

dubbo的資源下載地址:
https://github.com/alibaba/dubbo(下面的操作需要讀者有一定的maven基礎,並且保持網絡暢通)

選擇Branch:2.5.x–>Clone or download–>Download Zip,成功下載後爲incubator-dubbo-2.5.x.zip ,並解壓
在這裏插入圖片描述
發現裏面有dubbo-admin源碼,發現裏面有pom.xml文件(那麼它是一個maven工程)

如果使用的是linux git clone url來下載,那url這樣獲取:選擇Branch:2.5.x–>Clone or download–>點擊"像格式刷一樣的圖標"就複製上url了, 例如:https://github.com/apache/incubator-dubbo.git
在這裏插入圖片描述
用maven工具將dubbo-admin打成war包(dubbo-admin.war)用於部署到tomcat服務器上,運行這個war項目。(這步是關鍵,很多人敗在此處,只要你懂maven一切都easy)

如果你不想打自己打dubbo-admin.war,可以下載筆者在百度網盤提供的分享:
dubbo-admin.war鏈接:
https://pan.baidu.com/s/1MlmNQSoX7U5bpKkBpBD2ow 提取碼:6c79 (@author:拈花爲何不一笑)

  方式一 ,手工操作:
			1。安裝和設置jdk和maven的環境變量(注意jdk版本要與dubbo相匹配)
			2.maven 打成war包,修改dubbo-admin目錄中的pom.xml文件-->找到packaging內容-->修改成這樣"<packaging>war</packaging>"
			3。打開cmd,利用cd命令進入incubator-dubbo-2.5.x.zip解壓後的目錄的dubbo-admin目錄中,
			比如筆者的爲:E:\java\JavaEE框架\duboo框架\dubbo源碼_版本2.5.x\incubator-dubbo-2.5.x\dubbo-admin,則輸入命令:
			cd E:\2.java\1.java學習體系(路線)\5.JavaEE框架\7 duboo框架\dubbo源碼_版本2.5.x\incubator-dubbo-2.5.x\dubbo-admin
			e:
			E:\2.java\1.java學習體系(路線)\5.JavaEE框架\7 duboo框架\dubbo源碼_版本2.5.x\incubator-dubbo-2.5.x\dubbo-admin>mvn package -Dmaven.test.skip=true
			遇到問題:				
			[ERROR] 錯誤: 讀取F:\java\maven\repository\org\springframework\spring-context\3.2.16.RELEASE\spring-context-3.2.16.RELEASE.jar
			時出錯; invalid LOC header (bad signature),基本上都是這樣的10多個,說明下載的jar包有問題,按照路徑刪除,重新運行mvn package -Dmaven.test.skip=true
			會自動進行下載,並打包
			
			遇到上面錯誤後,先執行命令:mvn clean,再執行mvn package -Dmaven.test.skip=true即可。
			上面命令執行成功後,到dubbo-admin\target\下找到dubbo-admin.war包

在這裏插入圖片描述

	方式二,利用Eclipse/idea工具先導入maven工程dubbo-admin,在Eclipse/idea中間接調用maven來
	給dubbo-admin打成war包,原理跟方式一相同,這個會遇到環境不兼容的問題,要自己去解決。
	報錯build path 時不兼容,換成相應的jdk版本,再右鍵項目--> maven-->update project...
	即可解決。
	
	方式三,前兩種方式都是在window系統中進行的,而第三種,我們來linux下玩一玩, 原理其實還是跟方式一是相同的。
		1、安裝jdk (如何在linux 中安裝軟件在此不細述,可參考筆者的其它博文)
		2、安裝maven
		3、安裝tomcat(可省略,tomcat部署在windows上)
		4、安裝zookeeper
		5、打包dubbo-admin(利用maven工具)
		
		git clone https://github.com/apache/incubator-dubbo.git	#從github中下載dubbo
		tar -zxvf incubator-dubbo-2.5.x.zip	#解壓

		cd /usr/local/incubator-dubbo-2.5.x/dubbo-admin/	#進入到dubbo-admin目錄中
		mvn  package  -Dmaven.test.skip=true	#打包dubbo-admin成dubbo.war包,同理可以使用vim工具來修改pom.xml中打包方式設置成war即可

5.項目部署和管理

(i) 首先,啓動Zookeeper(參照上面的3.3)
在這裏插入圖片描述

(ii) 然後,部署dubbo-admin.war和啓動tomcat服務器
a) 部署dubbo-admin.war到tomcat安裝目錄下的webapps中,
b) 接着,啓動tomcat服務器,例如筆者的爲D:\apache\apache-tomcat-5.5.23\webapps\ ,
c) 再然後進入D:\apache\apache-tomcat-5.5.23\bin目錄中雙擊startup.bat 那麼tomcat服務器就啓
動了,啓動時我們來看看輸出信息,找到了dubbo-admin-2.5.10.war的信息,成功被部署了。
在這裏插入圖片描述

說明:在windwos環境下當環境變量CATALINA_HOME指定哪個tomcat服務器安裝目錄(當安裝了多個版本號的tomcat服務器時),startup.bat就運行那個tomcat服務器, 筆者實踐驗證過。

(iii) 最後,訪問和管理
訪問dubbo-admin應用,瀏覽器中輸入http://localhost:8080/dubbo-admin-2.5.10/
彈出一個框要求輸入用戶/密碼(位於部署在tomcat webapps目錄中的
dubbo-admin-2.5.10/WEB-INF/dubbo.properties文件中,裏面的密碼跟用戶名相同,有兩個密碼root和guest),輸入用戶名和密碼時來看看tomcat服務器輸出的信息
在這裏插入圖片描述

瀏覽器中彈出對話框信息,正確輸入用戶名和密碼後,進入dubbo-admin管理系統

在這裏插入圖片描述

那麼一個簡單的dubbo-zookeeper-admin環境體驗體驗就OK了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章