您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Dubbo有哪些基礎知識,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1、Dubbo的概念
Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司開源的一個高性能、輕量級的開源Java RPC框架,可以和Spring框架無縫集成。Dubbo提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。
2、認識RPC
RPC全稱為remote procedure call,是指整個網絡遠程調用過程。。兩臺服務器A和B,A服務器上部署一個應用,B服務器上部署一個應用,A服務器上的應用想調用B服務器上的應用提供的方法,由于兩個應用不在一個內存空間,不能直接調用,所以需要通過網絡來表達調用的語義和傳達調用的數據。RPC是一個泛化的概念,嚴格來說一切遠程過程調用手段都屬于RPC范疇。各種開發語言都有自己的RPC框架。Java中的RPC框架比較多,廣泛使用的有RMI、Hessian、Dubbo等。
3、Dubbo架構
(1)節點角色說明:
(2)調用關系說明:
a服務容器負責啟動,加載,運行服務提供者。
b服務提供者在啟動時,向注冊中心注冊自己提供的服務。
c服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
d注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變e更數據給消費者。
f服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
g服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。
4、服務注冊中心Zookeeper
通過前面的Dubbo架構圖可以看到,Registry(服務注冊中心)在其中起著至關重要的作用。Dubbo官方推薦使用Zookeeper作為服務注冊中心。
(1)Zookeeper介紹
Zookeeper 是 Apache Hadoop 的子項目,是一個樹型的目錄服務,支持變更推送,適合作為 Dubbo 服務的注冊中心,工業強度較高,可用于生產環境,并推薦使用 。為了便于理解Zookeeper的樹型目錄服務,我們先來看一下電腦的文件系統(也是一個樹型目錄結構):
電腦可以分為多個盤符(例如C、D、E等),每個盤符下可以創建多個目錄,每個目錄下面可以創建文件,也可以創建子目錄,最終構成了一個樹型結構。通過這種樹型結構的目錄,我們可以將文件分門別類的進行存放,方便我們后期查找。而且磁盤上的每個文件都有一個唯一的訪問路徑,例如:C:\Windows\itcast\hello.txt。
(2)Zookeeper樹型目錄服務
- 服務提供者(Provider)啟動時: 向 `/dubbo/com.foo.BarService/providers` 目錄下寫入自己的URL地址
- 服務消費者(Consumer)啟動時: 訂閱 `/dubbo/com.foo.BarService/providers` 目錄下的提供者 URL 地址。并向 `/dubbo/com.foo.BarService/consumers` 目錄下寫入自己的 URL 地址
- 監控中心(Monitor)啟動時: 訂閱 `/dubbo/com.foo.BarService` 目錄下的所有提供者和消費者 URL 地址
(3)安裝Zookeeper
第一步:安裝 jdk
第二步:把 zookeeper 的壓縮包(zookeeper-3.4.6.tar.gz)上傳到 linux 系統
第三步:解壓縮壓縮包
tar -zxvf zookeeper-3.4.6.tar.gz
第四步:進入zookeeper-3.4.6目錄,創建data目錄
mkdir data
第五步:進入conf目錄 ,把zoo_sample.cfg 改名為zoo.cfg
cd conf
mv zoo_sample.cfg zoo.cfg
第六步:打開zoo.cfg文件, 修改data屬性:dataDir=/root/zookeeper-3.4.6/data
(4)啟動、停止Zookeeper
進入Zookeeper的bin目錄,啟動服務命令
./zkServer.sh start
停止服務命令
./zkServer.sh stop
查看服務狀態:
./zkServer.sh status
看完上述內容,你們對Dubbo有哪些基礎知識有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。