溫馨提示×

溫馨提示×

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

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

微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別

發(fā)布時間:2022-01-15 13:59:30 來源:億速云 閱讀:215 作者:iii 欄目:云計算

這篇文章主要講解了“微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別”吧!

在微服務(wù)中,使用什么協(xié)議來構(gòu)建服務(wù)體系,一直是個熱門話題。爭論的焦點集中在兩個候選技術(shù):  RPC or Restful

  • RPC:Remote Produce Call遠程過程調(diào)用,類似的還有RMI。自定義數(shù)據(jù)格式,基于原生TCP通信,速度快,效率高。早期的webservice,現(xiàn)在熱門的Dubbo,都是RPC的典型代表。

  • Http:http其實是一種網(wǎng)絡(luò)傳輸協(xié)議,基于TCP,規(guī)定了數(shù)據(jù)傳輸?shù)母袷健,F(xiàn)在客戶端瀏覽器與服務(wù)端通信基本都是采用Http協(xié)議,也可以用來進行遠程服務(wù)調(diào)用。缺點是消息封裝臃腫,優(yōu)勢是對服務(wù)的提供和調(diào)用方?jīng)]有任何技術(shù)限定,自由靈活,更符合微服務(wù)理念。

0x01:RPC

       RPC 即遠程過程調(diào)用(Remote Procedure Call Protocol,簡稱RPC),像調(diào)用本地服務(wù)(方法)一樣調(diào)用服務(wù)器的服務(wù)(方法)。通常的實現(xiàn)有 XML-RPC , JSON-RPC , 通信方式基本相同, 所不同的只是傳輸數(shù)據(jù)的格式。

        RPC框架的主要目標就是讓遠程服務(wù)調(diào)用更簡單、透明。RPC框架負責屏蔽底層的傳輸方式(TCP或者UDP)、序列化方式(XML/JSON/二進制)和通信細節(jié)。開發(fā)人員在使用的時候只需要了解誰在什么位置提供了什么樣的遠程服務(wù)接口即可,并不需要關(guān)心底層通信細節(jié)和調(diào)用過程。

微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別

0x02:Restful

      REST即表述性狀態(tài)傳遞(Representational State Transfer,簡稱REST),是一種軟件架構(gòu)風格。REST通過HTTP協(xié)議定義的通用動詞方法(GET、PUT、DELETE、POST) ,以URI對網(wǎng)絡(luò)資源進行唯一標識,響應(yīng)端根據(jù)請求端的不同需求,通過無狀態(tài)通信,對其請求的資源進行表述。滿足REST約束條件和原則的架構(gòu),就被稱為是RESTful架構(gòu).

 0x03:區(qū)別

使用RPC遠程服務(wù)調(diào)用方式與傳統(tǒng)http接口直接調(diào)用方式的差別在于:

  • 從使用方面看,Http接口只關(guān)注服務(wù)提供方(服務(wù)端),對于客戶端怎么調(diào)用,調(diào)用方式怎樣并不關(guān)心,通常情況下,客戶端使用Http方式進行調(diào)用時,只要將內(nèi)容進行傳輸即可,這樣客戶端在使用時,需要更關(guān)注網(wǎng)絡(luò)方面的傳輸,比較不適用于業(yè)務(wù)方面的開發(fā);而RPC服務(wù)則需要客戶端接口與服務(wù)端保持一致,服務(wù)端提供一個方法,客戶端通過接口直接發(fā)起調(diào)用,業(yè)務(wù)開發(fā)人員僅需要關(guān)注業(yè)務(wù)方法的調(diào)用即可,不再關(guān)注網(wǎng)絡(luò)傳輸?shù)募毠?jié),在開發(fā)上更為高效。

  • 從性能角度看,使用Http時,Http本身提供了豐富的狀態(tài)功能與擴展功能,但也正由于Http提供的功能過多,導(dǎo)致在網(wǎng)絡(luò)傳輸時,需要攜帶的信息更多,從性能角度上講,較為低效。而RPC服務(wù)網(wǎng)絡(luò)傳輸上僅傳輸與業(yè)務(wù)內(nèi)容相關(guān)的數(shù)據(jù),傳輸數(shù)據(jù)更小,性能更高。

  • 從運維角度看,使用Http接口時,常常使用一個前端代理,來進行Http轉(zhuǎn)發(fā)代理請求的操作,需要進行擴容時,則需要去修改代理服務(wù)器的配置,較為繁瑣,也容易出錯。而使用RPC方式的微服務(wù),則只要增加一個服務(wù)節(jié)點即可,注冊中心可自動感知到節(jié)點的變化,通知調(diào)用客戶端進行負載的動態(tài)控制,更為智能,省去運維的操作。

微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別

微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別


微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別

感謝各位的閱讀,以上就是“微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對微服務(wù)通訊協(xié)議RPC和Restful有什么區(qū)別這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

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

AI