RPC呼叫和HTTP呼叫的區別

2021-09-19 06:58:54 字數 1018 閱讀 3321

rpc主要是基於tcp/ip協議的,而http服務主要是基於http協議的,我們都知道http協議是在傳輸層協議tcp之上的,所以效率來看的話,rpc當然是要更勝一籌啦!下面來具體說一說rpc服務和http服務。

在說rpc和http的區別之前,我覺的有必要了解一下osi的七層網路結構模型(雖然實際應用中基本上都是五層),它可以分為以下幾層: (從上到下)

實際應用過程中,五層協議結構裡面是沒有表示層和會話層的。應該說它們和應用層合併了。我們應該將重點放在應用層和傳輸層這兩個層面。因為http是應用層協議,而tcp是傳輸層協議。好,知道了網路的分層模型以後我們可以更好地理解為什麼rpc服務相比http服務要nice一些!

其實在很久以前,我對於企業開發的模式一直定性為http介面開發,也就是我們常說的restful風格的服務介面。的確,對於在介面不多、系統與系統互動較少的情況下,解決資訊孤島初期常使用的一種通訊手段;優點就是簡單、直接、開發方便。利用現成的http協議進行傳輸。我們記得之前本科實習在公司做後台開發的時候,主要就是進行介面的開發,還要寫一大份介面文件,嚴格地標明輸入輸出是什麼?說清楚每乙個介面的請求方法,以及請求引數需要注意的事項等。比如下面這個例子:

post

介面可能返回乙個json字串或者是xml文件。然後客戶端再去處理這個返回的資訊,從而可以比較快速地進行開發。但是對於大型企業來說,內部子系統較多、介面非常多的情況下,rpc框架的好處就顯示出來了,首先就是長鏈結,不必每次通訊都要像http一樣去3次握手什麼的,減少了網路開銷;其次就是rpc框架一般都有註冊中心,有豐富的監控管理;發布、下線介面、動態擴充套件等,對呼叫方來說是無感知、統一化的操作。

rpc服務和http服務還是存在很多的不同點的,一般來說,rpc服務主要是針對大型企業的,而http服務主要是針對小企業的,因為rpc效率更高,而http服務開發迭代會更快。總之,選用什麼樣的框架不是按照市場上流行什麼而決定的,而是要對整個專案進行完整地評估,從而在仔細比較兩種開發框架對於整個專案的影響,最後再決定什麼才是最適合這個專案的。一定不要為了使用rpc而每個專案都用rpc,而是要因地制宜,具體情況具體分析。

基於TCP與HTTP的RPC呼叫的區別

rpc即遠端服務呼叫 出現原因 隨著專案越來越大,訪問量越來越大,為了突破性能瓶頸,需要將專案拆分成多個部分,這樣比起傳統的專案都是本地記憶體呼叫,分布式的專案之間需要在網路間進行通訊 服務之間的遠端呼叫通常有兩種方式,即基於tcp的遠端呼叫和基於http的遠端呼叫 主要是服務提供方定義socket...

RPC和HTTP的區別?

1.rpc主要是基於tcp ip協議,而http服務主要是基於http協議 http協議是應用層協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網路分布式多程式在內的應用程式更加輕易。2.同步...

遠端呼叫RPC與Rest區別

一 rest與rpc概念 什麼是rest rest是一種架構風格,指的是一組架構約束條件和原則。滿足這些約束條件和原則的應用程式或設計就是 restful。rest規範把所有內容都視為資源,網路上一切皆資源。rest並沒有創造新的技術,元件或服務,只是使用web的現有特徵和能力。可以完全通過http...