netty和RPC之間的關係

RPC框架包含四個部分:

1.通信模型(網絡通信框架):假設通信的爲A機器與B機器,A與B之間有通信模型,在Java中一般基於BIO或NIO;。

2.過程(服務)定位:使用給定的通信方式,與確定IP與端口及方法名稱確定具體的過程或方法;

3.遠程代理對象:本地調用的方法(服務)其實是遠程方法的本地代理,因此可能需要一個遠程代理對象,對於Java而言,遠程代理對象可以使用Java的動態對象實現,封裝了調用遠程方法調用;

4.序列化協議,將對象名稱、方法名稱、參數等對象信息進行網絡傳輸需要轉換成二進制傳輸,這裏可能需要不同的序列化技術方案。如:protobuf,Arvo等。

其中2.3兩項可以概括爲“調用控制協議”

完成RPC 需要兩個協議,“序列化協議”和“調用控制協議”,還需要一個網絡通信框架,而Netty就是一個網絡通信框架。

常見例子舉例:

1.zeroC ICE,擁有自己的網絡通信框架 + ICE 調用控制協議和對象序列化協議,同時也涵蓋了服務組件的抽象部署等功能。

2.thrift,有自己的網絡通信框架+thrift 對象序列化協議+thrift 調用控制協議

3.probuff,只是 對象序列化協議

4.XMLRPC ,jsonRPC,常見的語境是利用HTTP協議作爲調用控制協議,XML 和 JSON 作爲對象序列化之後的格式。

  1. Netty只是網絡通信框架,目的是讓你用最少的代碼構建出足夠支撐網絡通信的功能,它是基於JAVA的NIO進行封裝後的產品。

————————————————
版權聲明:本文爲CSDN博主「荷葉清泉」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/heyeqingquan/article/details/78004890

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章