dubbo 原理和入門實踐

2021-08-29 18:18:49 字數 1897 閱讀 6330

一。dubbo:

遠端服務呼叫的分布式框架

其核心部分包含:

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

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

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

二。dubbo 框架架構圖

2.1 流程分析

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

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

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

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

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

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

三。相關**和demo 實現步驟

3.1  官網**demo說明

context.start();

system.in.read(); // press any key to exit

程式啟動讀取對應的resouce 下的xml 檔案,

宣告乙個介面和服務,

public inte***ce demoservice
宣告介面的實現類:

public class demoserviceimpl implements demoservice 

}

介面中的方法主要是通過字串從伺服器獲取相應的字串。

這裡是乙個demo service 實現,需要在dobbu 中配置相應的配置檔案,

通過註冊dubbo 協議服務和多播實現。

在伺服器端中實現:

context.start();

demoservice demoservice = (demoservice) context.getbean("demoservice"); // get remote service proxy

在載入類路徑下的*spring.xml 檔案的

通過對註冊的multicast 實現引用介面下的服務demoserver. 呼叫介面中的發布的service 的方法。

demoservice demoservice = (demoservice) context.getbean("demoservice"); // get remote service proxy

string hello = demoservice.sayhello("world"); // call remote method

呼叫遠端**和遠端方法。

3.2 註冊到zookeeper 的實現

啟動prider **,修改zk 位址。

啟動customer **:

結果如下:

官方文件:

管理控制台:

五.附件**:

入門demo:/dubbo-demo

dubbo原理與實踐

配置層 config 對外配置介面,以serviceconfig和referenceconfig為中心,可以直接new配置類,也可以通過spring解析配置生成配置類。服務 層 proxy 服務介面透明 生成服務的客戶端stub和伺服器端skeleton,以serviceproxy為中心,擴充套件介...

dubbo原理和機制

dubbo 框架是用來處理分布式系統中,服務發現與註冊以及呼叫問題的,並且管理呼叫過程。一,工作流程 二 各個部分整體機制 1 提供者暴露服務的整體機制 2.註冊中心 其主要作用如下 dubbo 有四種註冊中心的實現,分別是 zookeeper,redis,和 multicast。zookeeper...

Dubbo入門和應用

dubbo 是阿里巴巴公司開源的乙個高效能優秀的服務框架,使得應用可通過高效能的 rpc 實現服務的輸出和輸入功能,以及soa服務治理方案。1 主要核心部件 remoting 網路通訊框架,實現了 sync over async 和 request response 訊息機制.rpc 乙個遠端過程呼...