您好,登錄后才能下訂單哦!
服務之間的調用為啥用RPC,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
RPC(Remote Procedure Call)—遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。比如兩個不同的服務 A、B 部署在兩臺不同的機器上,那么服務 A 如果想要調用服務 B 中的某個方法該怎么辦呢?使用 HTTP請求 當然可以,但是可能會比較慢而且一些優化做的并不好。 RPC 的出現就是為了解決這個問題。
RPC(Remote Procedure Call)—遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。比如兩個不同的服務 A、B 部署在兩臺不同的機器上,那么服務 A 如果想要調用服務 B 中的某個方法該怎么辦呢?使用 HTTP請求 當然可以,但是可能會比較慢而且一些優化做的并不好。 RPC 的出現就是為了解決這個問題。
我這里這是簡單的提一下,詳細內容可以查看下面這篇文章:
服務消費方(client)調用以本地調用方式調用服務;
client stub接收到調用后負責將方法、參數等組裝成能夠進行網絡傳輸的消息體;
client stub找到服務地址,并將消息發送到服務端;
server stub收到消息后進行解碼;
server stub根據解碼結果調用本地的服務;
本地服務執行并將結果返回給server stub;
server stub將返回結果打包成消息并發送至消費方;
client stub接收到消息,并進行解碼;
服務消費方得到最終結果。
下面再貼一個網上的時序圖:
從上面對 RPC 介紹的內容中,概括來講RPC 主要解決了:讓分布式或者微服務系統中不同服務之間的調用像本地調用一樣簡單。
RMI(JDK自帶): JDK自帶的RPC,有很多局限性,不推薦使用。
Dubbo: Dubbo是 阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和 Spring框架無縫集成。目前 Dubbo 已經成為 Spring Cloud Alibaba 中的官方組件。
gRPC :gRPC是可以在任何環境中運行的現代開源高性能RPC框架。它可以通過可插拔的支持來有效地連接數據中心內和跨數據中心的服務,以實現負載平衡,跟蹤,運行狀況檢查和身份驗證。它也適用于分布式計算的最后一英里,以將設備,移動應用程序和瀏覽器連接到后端服務。
看完上述內容,你們掌握服務之間的調用為啥用RPC的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。