1. 程式人生 > >Netty框架和RPC框架的關係

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 作為物件序列化之後的格式。

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