Netty框架和RPC框架的关系

来源:互联网 发布:php curl 无法提交 编辑:程序博客网 时间:2024/05/16 12:57


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进行封装后的产品。



原创粉丝点击