中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

RPC服務與HTTP服務的區別是什么

發布時間:2021-07-09 17:23:32 來源:億速云 閱讀:596 作者:Leah 欄目:大數據

RPC服務與HTTP服務的區別是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1、什么是RPC

RPC(Remote Procedure Call)—遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分布式多程序在內的應用程序更加容易。

RPC采用客戶機/服務器(c/s)模式。請求程序就是一個客戶機,而服務提供程序就是一個服務器。首先,客戶機調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答信息。在服務器端,進程保持睡眠狀態直到調用信息到達為止。當一個調用信息到達,服務器獲得進程參數,計算結果,發送答復信息,然后等待下一個調用信息,最后,客戶端調用進程接收答復信息,獲得進程結果,然后調用執行繼續進行。

2、OSI網絡七層模型

在說RPC和HTTP的區別之前,我覺的有必要了解一下OSI的七層網絡結構模型,它可以分為以下幾層(自下而上):

RPC服務與HTTP服務的區別是什么

第一層:物理層。這一層主要就是傳輸這些二進制數據。

第二層:鏈路層。將上面的網絡層的數據包封裝成數據幀,便于物理層傳輸;

第三層:網絡層。定義網絡設備間如何傳輸數據;

第四層:傳輸層。管理著網絡中的端到端的數據傳輸;

第五層:會話層。管理用戶的會話,控制用戶間邏輯連接的建立和中斷;

第六層:表示層。定義不同的系統中數據的傳輸格式,編碼和解碼規范等;

第七層:應用層。定義了用于在網絡中進行通信和傳輸數據的接口;

3、RPC調用流程

簡單地說一下,一個完整的RPC架構里面包含了四個核心的組件,分別是Client ,Server,Client Stub以及Server Stub

1、 客戶端(RPC Client):服務調用方

2、 客戶端存根(Client Stub):存放服務端地址信息,將客戶端的請求參數打包成網絡消息,再通過網絡發送給服務方

3、 服務端存根(Server Stub):接受客戶端發送過來的消息并解包,再調用本地服務

4、 服務端(RPC Server):真正的服務提供者。

RPC采用C/S模式,請求程序就是一個客戶端應用,而服務提供者就是一個服務器。首先,服務消費者(RPC客戶端應用)調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答信息。在服務提供方(RPC服務器端),進程保持睡眠狀態直到調用信息到達為止。當一個調用信息到達,服務器獲得進程參數,調用服務端方法對調用請求進行計算而得到計算結果,并發送答復信息,然后等待下一個調用信息;最后,客戶端調用進程接收答復信息,獲得進程結果,然后調用執行繼續進行。

RPC服務與HTTP服務的區別是什么

4、RPC架構的作用

RPC 的主要目標是讓構建分布式計算(應用)更容易、透明,在提供強大的遠程調用能力時不損失本地調用的語義簡潔性。為實現該目標,RPC 框架需提供一種透明調用機制讓使用者不必顯式的區分本地調用和遠程調用。RPC框架負責屏蔽底層的傳輸方式(TCP或者UDP)、序列化方式(XML/JSON/二進制)和通信細節。開發人員在使用的時候只需要了解誰在什么位置提供了什么樣的遠程服務接口即可,并不需要關心底層通信細節和調用過程。

5、常見RPC技術和框架

(1)、應用級的服務框架:阿里的Dubbo/Dubbox、Google GRPC、Spring Boot/Spring Cloud。

(2)、遠程通信協議:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。

(3)、通信框架:MINA和Netty

6、HTTP服務 VS RPC服務

傳輸協議

RPC,可以基于TCP協議,也可以基于HTTP協議

HTTP,基于HTTP協議

傳輸效率

RPC,使用自定義的TCP協議,可以讓請求報文體積更小,或者使用HTTP2協議,也可以很好的減少報文的體積,提高傳輸效率

HTTP,如果是基于HTTP1.1的協議,請求中會包含很多無用的內容,如果是基于HTTP2.0,那么簡單的封裝以下是可以作為一個RPC來使用的,這時標準RPC框架更多的是服務治理

性能消耗,主要在于序列化和反序列化的耗時

RPC,可以基于thrift實現高效的二進制傳輸

HTTP,大部分是通過json來實現的,字節大小和序列化耗時都比thrift要更消耗性能

負載均衡

RPC,基本都自帶了負載均衡策略

HTTP,需要配置Nginx,HAProxy來實現

服務治理(下游服務新增,重啟,下線時如何不影響上游調用者)

RPC,能做到自動通知,不影響上游

HTTP,需要事先通知,修改Nginx/HAProxy配置

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临高县| 钟祥市| 保康县| 临洮县| 湘西| 株洲市| 乐平市| 介休市| 竹北市| 牡丹江市| 宝清县| 延长县| 襄垣县| 新余市| 翁源县| 平利县| 科技| 蛟河市| 抚松县| 乐安县| 安溪县| 寿光市| 贺州市| 韶山市| 内乡县| 怀化市| 乐平市| 肃宁县| 凤翔县| 乐至县| 丰城市| 方山县| 黄陵县| 孝感市| 永仁县| 封丘县| 克什克腾旗| 雷山县| 连城县| 礼泉县| 共和县|