RCP簡介(筆記一)


一、RCP概念

RPC(Remote Procedure Call)—遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。

二、實現方式

JDK動態代理

三、消息數據結構

客戶端請求參數數據結構:

1、接口名稱

2、方法名

3、參數類型&參數值

4、超時時間

5、requestID,標識唯一請求id。

服務端返回參數數據結構:

1、返回值

2、狀態code

3、requestID,標識唯一請求id。

requestID作用:在多線程請求中,每一個線程的唯一標識。

四、序列化和反序列化

RPC選擇序列化方法時需要考慮的點:

1、通用性,比如是否能支持Map等復雜的數據結構;

2、性能,包括時間復雜度和空間復雜度,由於RPC框架將會被公司幾乎所有服務使用,如果序列化上能節約一點時間,對整個公司的收益都將非常可觀,同理如果序列化上能節約一點內存,網絡帶寬也能省下不少;

3、可擴展性,對互聯網公司而言,業務變化快,如果序列化協議具有良好的可擴展性,支持自動增加新的業務字段,刪除老的字段,而不影響老的服務,這將大大提供系統的健壯性。

五、網絡通信

一般RPC框架都要支持BIO,NIO兩種IO通信模式。

一般都基於netty實現RPC的IO通信框架。

六、發布服務

使用zookeeper實現服務自動注冊與發現功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM