dubbo框架基礎知識

RPC調用流程  

 

RPC兩個核心模塊:通訊,序列化

序列化:爲了傳輸

Netty網絡傳輸

下圖爲Spring Cloud架構

dubbo中文 http://dubbo.apache.org/zh-cn/docs/user/quick-start.html 

HTTP SpringCloud(是一個生態)而dubbo是一個通信,Dubbo不會幹掉springCloud

 Apache Dubbo是一款高性能,輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現

下圖爲dubbo架構

iniit表示初始化

async:異步

sync: 同步

只有invoke是同步的,其它全部是異步

notify:通知,佈告    invoke:執行,調用,引用

服務提供者(Provider):暴露服務的服務提供方,服務提供者在啓動時,向註冊中心註冊自己提供的服務

服務消費者(Consumer):調用遠程服務的服務消費放,服務消費者在啓動時,向註冊中心訂閱自己所需的服務,服務消費者,從提供者地址列表中,基於軟負載均衡算法, 選一臺提供者進行調用,如果調用失敗,再選一臺調用

註冊中心(Registry):註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送變更數據給消費者

監控中心(Monitor):服務消費者和提供則,在內存中累計調用次數和調用時間, 定時每分鐘發送一次統計數據到監控中心

 

調用關係說明

(1)服務容器負責啓動,加載,運行服務提供者

(2)服務提供者在啓動時,向註冊中心註冊自己提供的服務

(3)服務消費者在啓動時,向註冊中心訂閱自己所需的服務

(4)  註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送變更數據給消費者

(5)服務消費者,從提供地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。

(6)服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心

 

 註冊中心參考工具

(1) Multicast註冊中心

(2) Zookeeper註冊中心

(3) Nacos註冊中心

(4) Redis註冊中心

(5) Simple註冊中心

 二安裝zookeeper

cmd D:\zookeeper\apache-zookeeper-3.6.0-bin\bin

肯能遇到問題:閃退!

解決方案:編輯zkServer.cmd文件末尾添加pause,即如下內容

echo on
call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" "-Dzookeeper.log.file=%ZOO_LOG_FILE%" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*
pause <---------------添加內容如下
endlocal

打開zookeeper服務器端口 zkServer.cmd

打開zookeeper客戶端       zkCli.cmd

四 使用zkCli.cmd 進行測試

ls / :列出zookeeper跟下保存的所有節點

WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[dubbo, zookeeper]
[zk: localhost:2181(CONNECTED) 1] create -e /kuangshen 123 
Created /kuangshen
[zk: localhost:2181(CONNECTED) 2] ls /
[dubbo, kuangshen, zookeeper]
[zk: localhost:2181(CONNECTED) 3]

[zk: localhost:2181(CONNECTED) 3] get /kuangshen
123
[zk: localhost:2181(CONNECTED) 4]

三安裝dubbo admin

dubbo本身並不是一個服務軟件。它其實就是jar包,能夠幫你的Java程序連接到zookeeper, 並利用zookeeper消費,提供服務

但是我們爲了讓用戶更好的管理衆多的dubbo服務, 官方提供了一個可視化的監控程序dubbo-admin,不過這個監控即使不安裝也不會影響使用

1 下載dubbo-admin地址

https://github.com/apache/dubbo-admin/tree/master

2解壓進入目錄

下載文件爲爲dubbo-admin-master.zip,如果有修改,可以修改如下配置

D:\Environment\dubbo-admin-master\dubbo-admin\src\main\resources\application.properties

 

3在項目目錄下打包dubbo-admin

cmd D:\Environment\dubbo-admin-master

D:\Environment\dubbo-admin-master>mvn clean package -Dmaven.test.skip=true

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] dubbo-admin ........................................ SUCCESS [ 26.544 s]
[INFO] dubbo-ops .......................................... SUCCESS [  0.033 s]
[INFO] dubbo-monitor-simple ............................... SUCCESS [ 15.254 s]
[INFO] dubbo-registry-simple .............................. SUCCESS [  2.005 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 48.970 s
[INFO] Finished at: 2020-03-25T12:25:22+08:00
[INFO] Final Memory: 52M/979M
[INFO] ------------------------------------------------------------------------

D:\Environment\dubbo-admin-master>
D:\Environment\dubbo-admin-master>cd dubbo-admin\target

D:\Environment\dubbo-admin-master\dubbo-admin\target>dir
 驅動器 D 中的卷是 新加捲
 卷的序列號是 04EF-B31C

打包完成目標文件
 D:\Environment\dubbo-admin-master\dubbo-admin\target 的目錄

2020/03/25  12:25    <DIR>          .
2020/03/25  12:25    <DIR>          ..
2020/03/25  12:24    <DIR>          classes
2020/03/25  12:25        31,739,794 dubbo-admin-0.0.1-SNAPSHOT.jar
2020/03/25  12:24           878,297 dubbo-admin-0.0.1-SNAPSHOT.jar.original
2020/03/25  12:24    <DIR>          generated-sources
2020/03/25  12:24    <DIR>          maven-archiver
2020/03/25  12:24    <DIR>          maven-status
               2 個文件     32,618,091 字節
               6 個目錄 158,328,262,656 可用字節

D:\Environment\dubbo-admin-master\dubbo-admin\target>java -jar dubbo-admin-0.0.1-SNAPSHOT.jar

http://localhost:7001 root/root
zookeeper: 註冊中心
dubbo-admin: 是一個監控管理後臺-查看我們註冊了哪些服務,哪些服務被消費了
Dubbo: jar包
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章