- 最本質的區別,就是RPC主要是基於TCP/IP協議的,而HTTP服務主要是基於HTTP協議的
- HTTP協議是在傳輸層協議TCP之上的,所以效率來看的話,RPC當然是要更勝一籌
RPC服務
- RPC架構
一個完整的RPC架構裡面包含了四個核心的元件,分別是Client ,Server,Client Stub以及Server Stub,這個Stub大家可以理解為存根。分別說說這幾個元件:
客戶端(Client),服務的呼叫方。
服務端(Server),真正的服務提供者。
客戶端存根,存放服務端的地址訊息,再將客戶端的請求引數打包成網路訊息,然後透過網路遠端傳送給服務方。
服務端存根,接收客戶端傳送過來的訊息,將訊息解包,並呼叫本地的方法。
PC主要是用在大型企業裡面,因為大型企業裡面系統繁多,業務線複雜,而且效率優勢非常重要的一塊,這個時候RPC的優勢就比較明顯了。實際的開發當中是這麼做的,專案一般使用maven來管理。
比如我們有一個處理訂單的系統服務,先宣告它的所有的介面(這裡就是具體指Java中的interface),然後將整個專案打包為一個jar包,服務端這邊引入這個二方庫,然後實現相應的功能,客戶端這邊也只需要引入這個二方庫即可呼叫了。
為什麼這麼做?主要是為了減少客戶端這邊的jar包大小,因為每一次打包釋出的時候,jar包太多總是會影響效率。另外也是將客戶端和服務端解耦,提高程式碼的可移植性
長連結和短連結的區別主要體現在以下幾個方面:
- 連線狀態不同。長連結(Long Connection)是在客戶端和伺服器之間建立的一種永續性連線,這種連線保持持續的連線狀態,用於實現雙向通訊,適用於需要頻繁通訊的情況,如線上聊天、線上遊戲和實時資料流傳輸等;短連結(Short Connection)是在客戶端和伺服器之間建立的一種臨時性連線,這種連線在每次通訊後立即斷開,適用於不頻繁的通訊,如傳統的HTTP/1.0請求響應模型。
- 資源佔用不同。長連結透過保持連線開啟,可以減少每次通訊的連線和斷開開銷,從而提高效率,但同時可能增加伺服器的資源消耗;短連結在每次通訊結束後斷開連線,不需要維持連線狀態,從而節省資源,特別適用於併發量大,但每個使用者無需頻繁操作的場景,如Web網站。
- 效能特點不同。長連結可以提高應用程式的整體效能,減少網路流量和延遲;短連結提供更好的隔離和資源釋放,特別是在客戶端和伺服器之間的通訊較為分散時。
綜上所述,長連結和短連結各有優勢和適用場景,選擇應根據具體的應用需求和場景來決定。
參考文件:https://www.jianshu.com/p/509cfb7f6869