關閉→
當前位置:知科普>IT科技>rpc和restful的區別

rpc和restful的區別

知科普 人氣:2.83W

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吧,性能差距還是很大的。

TAG標籤:#rpc #restful #