當前位置:生活全書館 >

IT科技

> rpc和restful的區別

rpc和restful的區別

rpc和restful的區別如下:

rpc和restful的區別

HTtp是不是RPC完全取決於client的具體形式。傳統的RPC一般是基於二進制協議的,client發個二進制包過來(然後阻塞),server處理完回覆一個包,client收到後醒來。在二進制協議中一般可以在包中加個id來指明回覆和請求的對應關係,這樣我們就能在一個tcp連接上同時發起多個請求和回覆。HTTP這種文字協議也可以加id,但由於一些原因(Content-Length可能缺失),即使加了id也做不到一個連接上同時傳多個HTTP消息,所以HTTP協議一般會和server保持多個連接,每個連接上同時最多隻有一個HTTP消息。此種”連接池“方式即爲HTTP中的”Keep-alive“。所以即使在HTTP上(或任何協議上),仍然可以做到高效地發送一個請求過去,阻塞,等待server處理完後,再醒來。這就是RPC。面向終端用戶的儘量用Restful HTTP。原因是認知廣,直觀,編程語言都支援HTTP(包括shell,這樣調試起來方便),性能不是那麼重要,方便用戶share連結。而面向內部系統的話如果機器不多也可以考慮用Restful HTTP,如果機器很多還是儘量用二進制的RPC吧,性能差距還是很大的。

標籤: restful rpc
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/zh-hant/dianzi/298exk.html