1. 程式人生 > >有http了,為什麼還要用rpc?

有http了,為什麼還要用rpc?

h33.jpg

http 和 rpc 並不是一個並行概念。

http是超文字傳輸協議,應用層網路協議。

rpc不是協議,是指遠端過程呼叫,對不同應用間相互呼叫的一種描述。其呼叫協議通常包含傳輸協議和編碼協議;支援http和tcp;

rpc呼叫是面向服務的封裝,針對服務的可用性和效率等都做了優化。單純使用http呼叫則缺少了這些特性。

例如rpc框架提供的負載均衡,服務治理,自動熔斷/降級,實現二進位制傳輸等;

如果把一個http server容器上封裝一層服務發現和函式代理呼叫,那它就已經可以做一個rpc框架了。

總結:

RPC是一種程式設計模式,把對伺服器的呼叫抽象為過程呼叫,通常伴隨著框架程式碼自動生成等功能。使用RPC做網路服務開發時,通常只需要實現伺服器端的一個處理函式,其餘的客戶端呼叫,序列化反序列化,方法派發等都由框架或者生成的程式碼來完成,較大地減輕了網路服務開發和呼叫的複雜性。RPC框架更多的在內網中應用間呼叫使用,http 除了內網傳輸,更習慣用在跨網間,跨語言間呼叫。