溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

服務(wù)之間的調(diào)用為啥用RPC

發(fā)布時(shí)間:2022-01-06 18:25:17 來(lái)源:億速云 閱讀:150 作者:柒染 欄目:云計(jì)算

服務(wù)之間的調(diào)用為啥用RPC,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

服務(wù)之間的調(diào)用為啥用RPC

RPC(Remote Procedure Call)—遠(yuǎn)程過(guò)程調(diào)用,它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。比如兩個(gè)不同的服務(wù) A、B 部署在兩臺(tái)不同的機(jī)器上,那么服務(wù) A 如果想要調(diào)用服務(wù) B 中的某個(gè)方法該怎么辦呢?使用 HTTP請(qǐng)求 當(dāng)然可以,但是可能會(huì)比較慢而且一些優(yōu)化做的并不好。 RPC 的出現(xiàn)就是為了解決這個(gè)問(wèn)題。
 

什么是 RPC?RPC原理是什么?

什么是 RPC?

RPC(Remote Procedure Call)—遠(yuǎn)程過(guò)程調(diào)用,它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。比如兩個(gè)不同的服務(wù) A、B 部署在兩臺(tái)不同的機(jī)器上,那么服務(wù) A 如果想要調(diào)用服務(wù) B 中的某個(gè)方法該怎么辦呢?使用 HTTP請(qǐng)求 當(dāng)然可以,但是可能會(huì)比較慢而且一些優(yōu)化做的并不好。 RPC 的出現(xiàn)就是為了解決這個(gè)問(wèn)題。

RPC原理是什么?

我這里這是簡(jiǎn)單的提一下,詳細(xì)內(nèi)容可以查看下面這篇文章:

  1. 服務(wù)消費(fèi)方(client)調(diào)用以本地調(diào)用方式調(diào)用服務(wù);

  2. client stub接收到調(diào)用后負(fù)責(zé)將方法、參數(shù)等組裝成能夠進(jìn)行網(wǎng)絡(luò)傳輸?shù)南Ⅲw;

  3. client stub找到服務(wù)地址,并將消息發(fā)送到服務(wù)端;

  4. server stub收到消息后進(jìn)行解碼;

  5. server stub根據(jù)解碼結(jié)果調(diào)用本地的服務(wù);

  6. 本地服務(wù)執(zhí)行并將結(jié)果返回給server stub;

  7. server stub將返回結(jié)果打包成消息并發(fā)送至消費(fèi)方;

  8. client stub接收到消息,并進(jìn)行解碼;

  9. 服務(wù)消費(fèi)方得到最終結(jié)果。

下面再貼一個(gè)網(wǎng)上的時(shí)序圖:

服務(wù)之間的調(diào)用為啥用RPC

RPC 解決了什么問(wèn)題?

從上面對(duì) RPC 介紹的內(nèi)容中,概括來(lái)講RPC 主要解決了:讓分布式或者微服務(wù)系統(tǒng)中不同服務(wù)之間的調(diào)用像本地調(diào)用一樣簡(jiǎn)單。

常見(jiàn)的 RPC 框架總結(jié)?

  • RMI(JDK自帶): JDK自帶的RPC,有很多局限性,不推薦使用。

  • Dubbo: Dubbo是 阿里巴巴公司開(kāi)源的一個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過(guò)高性能的 RPC 實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和 Spring框架無(wú)縫集成。目前 Dubbo 已經(jīng)成為 Spring Cloud Alibaba 中的官方組件。

  • gRPC :gRPC是可以在任何環(huán)境中運(yùn)行的現(xiàn)代開(kāi)源高性能RPC框架。它可以通過(guò)可插拔的支持來(lái)有效地連接數(shù)據(jù)中心內(nèi)和跨數(shù)據(jù)中心的服務(wù),以實(shí)現(xiàn)負(fù)載平衡,跟蹤,運(yùn)行狀況檢查和身份驗(yàn)證。它也適用于分布式計(jì)算的最后一英里,以將設(shè)備,移動(dòng)應(yīng)用程序和瀏覽器連接到后端服務(wù)。


看完上述內(nèi)容,你們掌握服務(wù)之間的調(diào)用為啥用RPC的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

rpc
AI