RPC远程过程调用

RPC是指远程过程调用,通俗地讲,就是本地通过网络连接调用远程的方法,

(与之相对应的,就是我们常用的本地调用,即在本地直接调用方法)。


简单地说,一次RPC调用涉及client、clientProxy、serverProxy、server这四个点,具体步骤如下:

1、client发起方法调用,调用clientProxy的方法;

2、clientProxy收到调用请求后,对请求信息进行编码,经网络传输给serverProxy,进行方法调用;

3、serverProxy收到clientProxy的请求后,对请求信息进行解码,然后调用server中的方法的实际实现;

4、server收到请求后,进行实际方法的调用,;

之后是上述过程的反向流程,即将结果返回。


经过上述介绍,在RPC实际实现中,我们还需要解决三个问题:

1、server需要事先提供方法接口,只有这样,clent才知道有哪些方法可以调用

这需要我们以某种方式生成接口,含义一样,但对各方都能理解和使用的接口

2、clentf需要知道server的地址

这里我们可以使用zookeeper进行地址注册,当然也可以用其它方式,如数据库,redis等,可以根据具体场景使用

3、clientProxy和serverProxy需要共同约定传输报文格式,其实也就是协议,只有这样,在编写或读取报文时,能明白是什么意思

那么传输报文格式,需要哪些内容呢,其实也就是普通方法调用需要的内容,

简单说,包括两项,即:

a) 请求报文(即方法调用的传参),具体包括:接口名、方法名、方法参数

b) 响应报方(即方法调用的结果),具体包括:响应结果


再往下面就是通常网络协议需要的一些东西,即具体的设计,各种RPC框架(如rmi、dubbo、thrift等)有不同的实现,在此不细说了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值