1. 程式人生 > >分散式之Netty介紹與實戰(五)--Netty-RPC框架實戰

分散式之Netty介紹與實戰(五)--Netty-RPC框架實戰

基於Netty實現RPC框架

背景:微服務

在這裡插入圖片描述

微服務挑戰之一:微服務間的通訊

在這裡插入圖片描述

如何實現微服務之間的通訊,而不帶來效能瓶頸?

RPC構建需要考慮的主要因素

  • 通訊協議
  • 文字協議或二進位制協議(RESTful with JSON or RPC with Binary Encoding)
  • 支援的呼叫方式:單向、雙向、Streaming
  • API容錯、可伸縮性
  • ….

主流RPC框架

在這裡插入圖片描述

RPC框架

在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述

RPC框架基本問題

  1. 怎麼實現使用者透明?怎麼生成 Proxy(Stub)?
  2. 怎麼打包引數?
  3. 怎麼傳輸?
  4. 怎麼知道目標服務地址?
  5. 怎麼釋出一個 RPC 服務?
  1. 動態代理解決了 Stub 的問題。
  2. 序列化和網路協議編碼解決了打包的問題
  3. 服務發現與路由定址解決了如何知道目標地址的問題
  4. 如何釋出一個服務,Registry 來解決。
  5. Netty 等解決了網路傳輸的問題。

在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述