RPC是什麼
過程是什麼?
過程就是業務處理、計算任務,更直白理解,就是程序。(像調用本地方法一樣調用遠程的過程。)
RPC採用Client - Service結構,通過request - response消息模式實現。
- RPC 和 RMI有什麼區別?
RMI(remote method invocation) 遠程方法調用是oop領域中RPC的一種具體實現。(JDK中的具體實現。)
- 我們熟悉的webservice、restful接口調用是RPC嗎?
都是RPC,僅消息的組織方式及消息協議不同。
- 遠程過程調用較本地調用有何不同?
速度相對慢、可靠性減弱。
RPC的流程
RPC流程中需要處理的問題
- Client stub 、 Server stub的開發;
- 參數如何編組爲消息,以及解組消息;
- 消息如何發送;
- 過程結果如何表示、異常情況如何處理;
- 如何實現安全的訪問控制。
RPC協議是什麼?
RPC調用過程中需要將參數編組爲消息進行發送,接收方需要解組消息爲參數,過程處理結果同樣需要經編組、解組。消息由哪些部分構成及消息的表示形式就構成了消息協議。
RPC調用過程中採用的消息協議稱爲RPC協議
。
RPC協議規定請求、響應消息的格式:
在TCP(網絡傳輸控制協議)上可選用或自定義消息協議來完成RPC消息交互
我們可以選用通用的標準協議(如:http、https),也可根據自身的需要定義自己的消息協議!
常見RPC協議
RPC框架是什麼?
封裝好參數編組、消息解組、底層網絡通信的RPC程序開發框架,帶來的便捷是可以直接在其基礎上只需專注於過程代碼編寫
。
Java領域:
- 傳統的webservice框架: Apache CXF、Apache Axis2、Java 自帶的 JAX - WS等等。