RPC調用(Remote Producedure Call 遠程過程調用)
RPC(Remote Procedure Call Protocol)——遠程過程調用協議,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。
RPC調用和 Ajax調用的區別
1、不同點
① RPC調用是一個服務器和另外一個服務器之間的通信,Ajax是服務器和瀏覽器之間的通信
② 不一定使用DNS作為尋址服務,Ajax使用DNS作為尋址服務,但是RPC不一定使用,一般是在內 網間進行通信,使用DNS通訊划不來
Ajax的DNS尋址
瀏覽器發送http請求(http://域名/路徑)
DNS負責將域名轉換為IP



RPC調用的DNS尋址
通過ID(統一標准的字符,例如騰訊的L5、阿里的VIP)來獲取IP


③ 應用層協議一般不使用HTTP,RPC一般使用二進制協議來取代HTTP,因為二進制協議有一些性能上的優勢
Ajax因為是瀏覽器向服務器之間的通信,瀏覽器都用http通信
RPC使用TCP通信
TCP通信方式
1、單工通信(只能cliient向server發送數據或者只能server向client發送數據)
2、半雙工通信(在同一時間段內,只能向另一方發送數據,相當於獨木橋)
3、全雙工通信(隨時互相發送數據,相當於雙向車道,但是成本比較高)
④ RPC基於TCP或UDP,Ajax一般基於HTTP
Ajax使用http協議,要么是html/xml,要么是json
RPC調用使用二進制協議,更小的數據包體積,更快的編解碼速率,使用計算機語言,二進制解 碼更利於計算機理解,http文本協議更利於人類理解
2、相同點:
① 都是兩個計算機之間的網絡通信
② 需要雙方約定一個數據格式