1. 程式人生 > 其它 >2.RPC與dubbo核心概念

2.RPC與dubbo核心概念

目錄

3.RPC

什麼叫RPC

RPC【Remote Procedure Call】是指遠端過程呼叫,是一種程序間通訊方式,他是一種技術的思想,而不是規範。它允許程式呼叫另一個地址空間(通常是共享網路的另一臺機器上)的過程或函式,而不用程式設計師顯式編碼這個遠端呼叫的細節。即程式設計師無論是呼叫本地的還是遠端的函式,本質上編寫的呼叫程式碼基本相同。

RPC基本原理

  1. client與service要建立連線
  2. 傳遞資料要序列化和反序列化機制

RPC兩個核心模組:通訊效率(網路通訊),序列化效率。

RPC框架有很多:dubbo、gRPC、Thrift、HSF(High Speed Service Framework)

4.dubbo核心概念

簡介

Apache Dubbo (incubating) 是一款高效能、輕量級的開源Java RPC框架。

它提供了三大核心能力:

  • 面向介面的遠端方法呼叫
  • 智慧容錯和負載均衡
  • 以及服務自動註冊和發現。

官網:

http://dubbo.apache.org/

基本概念

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

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

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

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

呼叫關係說明

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

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

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

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

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

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