RPC服務治理

2021-10-02 01:56:19 字數 947 閱讀 4151

rpc全稱為remote procedure call,翻譯過來為「遠端過程呼叫」。目前,主流的平台中都支援各種遠端呼叫技術,以滿足分布式系統架構中不同的系統之間的遠端通訊和相互呼叫。遠端呼叫的應用場景極其廣泛,實現的方式也各式各樣。

過程是業務處理、計算任務;更直接的理解:一段程式**。

像呼叫本地方法一樣呼叫遠端的過程。

比如 a (client) 呼叫 b (server) 提供的 remoteadd方法:

首先a與b之間建立乙個tcp連線;

a把需要呼叫的方法名(這裡是remoteadd)以及方法引數(10, 20)序列化成位元組流傳送出去;

b接受a傳送過來的位元組流,然後反序列化得到目標方法名,方法引數,接著執行相應的方法呼叫(可能是localadd)並把結果30返回;

a接受遠端呼叫結果,輸出30。

封裝好了引數組、訊息編譯碼、底層網路通訊的遠端過程呼叫的程式框架,可以直接在其基礎上只需專注於我們的過程**編寫。

基於http協議的,如:基於文字soap(xml), json, 二進位制hessian。

基於tcp協議,通常會借用netty等高效能網路框架。

只有二進位制資料才能在網路中傳輸,將物件轉換成二進位製流的過程叫做序列化,將二進位制流轉換成物件的過程叫做反序列化。

通過了解rpc後,我們知道是rpc是client/server模式的,呼叫遠端的方法,rest也是我們熟悉的一套api呼叫協議方法,它也是基於client/server模式的,呼叫遠端的方法的,那他倆又有啥區別呢?

rest 和 rpc 都是在 server端, 把乙個個函式封裝成介面暴露出去,以供 client端 呼叫,不過 rest 是基於http協議的,rest致力於通過http協議中的post/get等方法和乙個可讀性強的url來提供乙個http請求。而 rpc 可以不基於 http協議 ,因此用 rpc 可以獲得更好的效能(省去了 http header等一系列東西),應該也更容易配置。

服務治理總結

服務治理是隨著服務化的架構理念而出現的,那麼什麼是服務治理 soa governance 服務治理指的是用來管理soa的採用和實現的過程。服務治理解決了微服務架構的什麼痛點呢?首先我們總結一下微服務的特點 1 按業務 功能 模組 層級分成粒度很細的單獨部署的服務,2 服務可以被n個其它服務呼叫,3 ...

服務治理 Consul

consul 註冊中心 功能 1 服務發現 service discovery consul的客戶端可以註冊服務,比如api,另外一些客戶端可使用consul查詢給定服務的提供者。使用dns或者http,應用程式可以輕鬆找到它們依賴的服務。理解 用dns舉例 consul是儲存服務名稱與ip和埠對應...

服務治理 Spring Cloud Eureka

spring cloud eureka是 spring cloud netflix微務套件中的一部分,它基於 netflix eureka做了二次封裝,主要負責完成微服務架構中的服務治理功能。spring cloud通過為eurekaspring增加了 boot風格的自動化配置,我們只需通過簡單引入...