1. 程式人生 > >Dubbox分散式框架

Dubbox分散式框架

Dubbox的由來:

Dubbox 是一個分散式服務框架,其前身是阿里巴巴開源專案Dubbo ,

被國內電商及網際網路專案中使用,後期阿里巴巴停止了該專案的維護,

噹噹網便在Dubbo基礎上進行優化,並繼續維護,為了與原有的Dubbo區分,故將其命名為Dubbox。


Dubbox的作用:

Dubbox 致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。

簡單的說,dubbox就是個服務框架,

如果沒有分散式的需求,其實是不需要用的,

只有在分散式的時候,才有dubbox這樣的分散式服務框架的需求,

並且本質上是個服務呼叫的東東,說白了就是個遠端服務呼叫的分散式框架。


{補充}

什麼是SOA架構

面向服務的體系結構(service-oriented architecture,SOA)是一個元件模型,

它將應用程式的不同功能單元(稱為服務)通過這些服務之間定義良好的介面和契約聯絡起來。

介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平臺、作業系統和程式語言。

這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行互動。

為什麼網際網路專案會採用SOA架構呢?

隨著網際網路的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,

分散式服務架構以及流動計算架構勢在必行,迫切需一個治理系統確保架構有條不紊的演進。


在這裡插入圖片描述
節點角色說明:

Provider: 暴露服務的服務提供方。·

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

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

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

· Container: 服務執行容器。


呼叫關係說明:

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

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

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

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

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

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


分散式框架生態圈

dubbo的定位是一款rpc框架

spring cloud的目標是微服務架構下的一站式解決方案:


服務註冊中心eureka

服務呼叫方式Rest api

服務監控Spring bood admin

斷路器hystrix

服務閘道器zuul

分散式配置Spring cloud config

服務跟蹤sleuth

訊息匯流排Spring cloud bus

資料流Spring cloud stream

批量任務Spring cloud task


路徑:

可以通過https://github.com/dangdangdotcom/dubbox來下載dubox框架

在這裡插入圖片描述

\dubbo\dubbox\dubbo-admin\target\dubbo-admin-2.8.4.war

將這個war放在伺服器上執行就可以出來分散式框架執行的內部 服務者和消費者 的具體情況

將此war包放在webapp的資料夾下面 執行之後它會自動解壓成資料夾

在這裡插入圖片描述

在檢視bin裡面的可執行bat 點選start.bat 它會啟動

路徑 http://localhost:8082/dubbo-admin/

出來圖形介面

在這裡插入圖片描述

這就證明進去dubbox裡面的中心註冊介面了

重點是 他是利用Zookeeper進去的

Zookeeper適合作為Dubbox 服務的註冊中心

Zookeeper現在目前只有linux版的 所以需要在linux系統裡面下載Zookeeper

通過Zookeeper註冊中心 來進行分散式框架

具體框架的如何運用就需要用到專案裡面 了