RPC 的實現方式

微服務兩大難點:治理和拆分。

Nacos 是對 DDD 的落地。Nacos 目前可以做到 10 萬級別的實例註冊支撐。

Sentinel 是面向分佈式服務架構的高可用流量防護組件,主要以流量爲切入點,從限流、流量整形、熔斷降級、系統負載保護、熱點防護等多個維度來幫助開發者保障微服務的穩定性。

開發框架選擇。需要注意的是,RPC 本身是可以基於 TCP 或者 HTTP 的。在下圖中,我們使用 RPC over TCP。

RPC 的定義如下, 它的核心是向調用本地函數一樣調用遠程函數。

RPC 理論模型如下,包含五個角色:

我們查看 RPC 調用過程,其中第一步是判斷是否是本地調用。

RPC 理論模型調用路徑:

RPC 的協議組成:協議頭、消息體、編解碼。

RPC 的協議頭是定長的:

RPC 的協議體是變長的:

RPC 的序列化如下:

RPC 的 I/O 模型。RPC I/O 模型最終是對 OS I/O 的封裝。

RPC 的 I/O 模型中,用的最多的還是 I/O 多路複用。

國內外的開源 RPC 框架如下:

RPC 的框架分類。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/KCaKJ4NHAIlxadzoVWe12g