RPC的实现原理(thrift/dubbo比较)

本文介绍了RPC的基本概念,包括网络通信、序列化和透明化服务调用。对比了Thrift和Dubbo在实现这些功能上的区别。Thrift通过IDL实现跨语言服务,而Dubbo依赖Java反射和动态代理。两者在网络通信方面,Thrift提供了多种协议和服务器模型,Dubbo基于NIO框架。在序列化上,Thrift支持特定的IDL格式,而Dubbo兼容多种协议。
摘要由CSDN通过智能技术生成

1.概念

我们知道RPC的目的就是让Client像本地方法一样去调用远程(即Server)服务,而完成这一功能,从上至下,Server需要完成方法的包装序列化,以及负责实现网络通信和方法的具体实现;同样Client调用,首先也得持有方法对象,然后将方法以及参数序列化后,和Server通信,交由Server具体实现,最后Server返回响应的结果。
https://www.cnblogs.com/crazylqy/p/7995395.html
总结一下,RPC框架需要解决的问题:1. 网络通信 2. 序列化/反序列化 3. 透明化服务调用。下面一一分析。

2.透明化服务调用

这也是RPC最直接的目的,Client需要像调用本地方法一样调用Server端的方法,所以在Client和Server端中间必须有一个虚拟桥梁,那就是对象方法服务接口,所以Client和Server都需要持有这个对象方法服务接口。一般而言,都是Server端定义好了对象方法接口,并负责具体的实现,然后将对象方法接口告知Client,然后Client也需要在本地创建一个对象方法接口,并不需要具体实现。这样Client就可以调用接口方法,然后由RPC框架负责序列化参数,并交由服务端的具体实现来完成。
对于不同的框架而言,实现方式有点不同:

  • Dubbo:通过java反射和动态代理实现这一功能,由于<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值