當前位置:生活全書館 >

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/dianzi/298exk.html