RPC演进

视频参考b站视频马士兵RPC演进


RPC

概念

单机到分布式 -> 分布式通信 -> 最基本:二进制数据传输TCP/IP

第一阶段

使用的是java基础中的socket编程
设置监听端口,通过IO流将数据写进去读出来

第二阶段

网络传输的编程过于繁琐,便将网络传输的过程封装了起来。
Stub(客户端)类,代理,将网络编程相关部分封装成一个类,client中只需引入Stub,调用Stub中的方法即可

第三阶段


Stub开始提供IUserService,在client中能得到UserService对象,然后可以远程访问FindUserById方法,
基于动态代理,用invoke方法联网实现

第四阶段

基于第三阶段,将invoke中的方法名,参数类型等传给server,server通过方法名和参数类型匹配到所要调用的方法。
服务器:读入方法名,参数类型,参数;通过反射找到方法并用invoke调用。

第五阶段

在Server处使用WriteObject方法把对象写入
相当于用object类型封装以支持任意对象返回

第六阶段

将Stub的返回值改为Object,可以返回任意类型的对象。

第七阶段

使用了序列化框架Hessian,相比于实现serializable接口实现序列化,Hessian的压缩后体积更小,进行序列化和反序列化的时间更短了。

动态代理

对象身上的业务太复杂,可以通过代理转移部分职责。

代理实现

star接口中有着BigStar类中的所有方法,proxy通过反射回得到接口中的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值