dubbo框架環境搭建

2021-08-17 18:01:28 字數 2715 閱讀 1032

大規模服務化之前,應用可能只是通過rmi或hessian等工具,簡單的暴露和引用遠端服務,通過配置服務的url位址進行呼叫,通過f5等硬體進行負載均衡。

(1) 當服務越來越多時,服務url配置管理變得非常困難,f5硬體負載均衡器的單點壓力也越來越大。

此時需要乙個服務註冊中心,動態的註冊和發現服務,使服務的位置透明。

並通過在消費方獲取服務提供方位址列表,實現軟負載均衡和failover,降低對f5硬體負載均衡器的依賴,也能減少部分成本。

(2) 當進一步發展,服務間依賴關係變得錯蹤複雜,甚至分不清哪個應用要在哪個應用之前啟動,架構師都不能完整的描述應用的架構關係。

這時,需要自動畫出應用間的依賴關係圖,以幫助架構師理清理關係。

(3) 接著,服務的呼叫量越來越大,服務的容量問題就暴露出來,這個服務需要多少機器支撐?什麼時候該加機器?

為了解決這些問題,第一步,要將服務現在每天的呼叫量,響應時間,都統計出來,作為容量規劃的參考指標。

1. dubbo是什麼?

dubbo(注:hsf提供的是分布式服務開發框架,taobao內部使用較多)是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbo這樣的分布式服務框架的需求,並且本質上是個服務呼叫的東東,說白了就是個遠端服務呼叫的分布式框架

其核心部分包含:

1. 遠端通訊: 提供對多種基於長連線的nio框架抽象封裝,包括多種執行緒模型,序列化,以及「請求-響應」模式的資訊交換方式。

2. 集群容錯: 提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,位址路由,動態配置等集群支援。

3. 自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查詢服務提供方,使位址透明,使服務提供方可以平滑增加或減少機器。

2. dubbo能做什麼?

1.透明化的遠端方法呼叫,就像呼叫本地方法一樣呼叫遠端方法,只需簡單配置,沒有任何api侵入。      

2.軟負載均衡及容錯機制,可在內網替代f5等硬體負載均衡器,降低成本,減少單點。

3. 服務自動註冊與發現,不再需要寫死服務提供方位址,註冊中心基於介面名查詢服務提供者的ip位址,並且能夠平滑新增或刪除服務提供者。

dubbo採用全spring配置方式,透明化接入應用,對應用沒有任何api侵入,只需用spring載入dubbo的配置即可,dubbo基於spring的schema擴充套件進行載入。

節點角色說明:

provider: 暴露服務的服務提供方。

consumer: 呼叫遠端服務的服務消費方。

registry: 服務註冊與發現的註冊中心。

monitor: 統計服務的呼叫次調和呼叫時間的監控中心。

container: 服務執行容器。

呼叫關係說明:

0 .(start)服務容器負責啟動,載入,執行服務提供者。

1. (register)服務提供者在啟動時,向註冊中心註冊自己提供的服務。

2. (subscribe)服務消費者在啟動時,向註冊中心訂閱自己所需的服務。

3. (notify)註冊中心返回服務提供者位址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者。

4. (invoke) 服務消費者,從提供者位址列表中,基於軟負載均衡演算法,選一台提供者進行呼叫,如果呼叫失敗,再選另一台呼叫。

5. (count)服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計資料到監控中心。

doubbox 特性:

(1) 連通性: 

註冊中心負責服務位址的註冊與查詢,相當於目錄服務,服務提供者和消費者只在啟動時與註冊中心互動,註冊中心不**請求,壓力較小

監控中心負責統計各服務呼叫次數,呼叫時間等,統計先在記憶體彙總後每分鐘一次傳送到監控中心伺服器,並以報表展示 

服務提供者向註冊中心註冊其提供的服務,並匯報呼叫時間到監控中心,此時間不包含網路開銷

服務消費者向註冊中心獲取服務提供者位址列表,並根據負載演算法直接呼叫提供者,同時匯報呼叫時間到監控中心,此時間包含網路開銷 

註冊中心,服務提供者,服務消費者三者之間均為長連線,監控中心除外 

註冊中心通過長連線感知服務提供者的存在,服務提供者宕機,註冊中心將立即推送事件通知消費者

註冊中心和監控中心全部宕機,不影響已執行的提供者和消費者,消費者在本地快取了提供者列表 

註冊中心和監控中心都是可選的,服務消費者可以直連服務提供者

(2) 健狀性:

監控中心宕掉不影響使用,只是丟失部分取樣資料

資料庫宕掉後,註冊中心仍能通過快取提供服務列表查詢,但不能註冊新服務 

註冊中心對等集群,任意一台宕掉後,將自動切換到另一台

註冊中心全部宕掉後,服務提供者和服務消費者仍能通過本地快取通訊

服務提供者無狀態,任意一台宕掉後,不影響使用 

服務提供者全部宕掉後,服務消費者應用將無法使用,並無限次重連等待服務提供者恢復

(3) 伸縮性: 

註冊中心為對等集群,可動態增加機器部署例項,所有客戶端將自動發現新的註冊中心

服務提供者無狀態,可動態增加機器部署例項,註冊中心將推送新的服務提供者資訊給消費者 

(4) 公升級性: 

當服務集群規模進一步擴大,帶動it治理結構進一步公升級,需要實現動態部署,進行流動計算,現有分布式服務架構不會帶來阻力

Clouda框架環境搭建

1.選擇合適的版本 64bit或者32bit 2.可以自選路徑也可以預設路徑安裝,這裡是自選路徑 在d盤新建資料夾 mongodb 3在mongodb目錄下新建data和logs檔案 在logs目錄下新建 mongodb.log 檔案 儲存日誌 data目錄存放資料 4win r 進入cmd 進入m...

Spring框架環境搭建

一 導包 spring 3.0.2 spring框架整合的其他jar包.spring 5.0.2 spring框架本身的包 開啟spring 5.0.2包 libs jar包 schema 約束檔案 匯入核心包 還需要匯入日誌包 在spring 3.0.2檔案中 二 建立乙個bean類 packag...

vue框架環境搭建

1.安裝nodejs 2.搭建vue開發環境,安裝vue的腳手架工具 使用cnpm 映象工具 在cmd輸入以下命令即可 npm install g cnpm registry npm install global vue cli3.建立專案 以下就以vuelist為專案名稱 在vscode終端輸入以...