### RPC (Remote Procedure Call,遠程過程調用)
* 說得通俗一點就是:調用遠程計算機上的服務,就像調用本地服務一樣。
* 一般建于 TCP/IP之上, 傳輸層協議;效率比HTTP服務更勝一籌
* 大型互聯網公司的系統都由成千上萬大大小小的服務組成,各服務部署在不同的機器上,由不同的團隊負責。
* 4大核心組件:client <-> client stub <-> server stub <-> server
* PHP RPC : [laruence/yar](https://github.com/laruence/yar)
### RPC 過程
1)服務消費方(client)調用以本地調用方式調用服務;
2)client stub接收到調用后負責將方法、參數等組裝成能夠進行網絡傳輸的消息體;
3)client stub找到服務地址,并將消息發送到服務端;
4)server stub收到消息后進行解碼;
5)server stub根據解碼結果調用本地的服務;
6)本地服務執行并將結果返回給server stub;
7)server stub將返回結果打包成消息并發送至消費方;
8)client stub接收到消息,并進行解碼;
9)服務消費方得到最終結果。
RPC的目標就是要2~8這些步驟都封裝起來,讓用戶對這些細節透明。
