RPC(远程过程调用)

1.1. RPC介绍

Remote Procedure Call 远程过程调用,是分布式架构的核心,按响应方式分如下两种:

同步调用:客户端调用服务方方法,等待直到服务方返回结果或者超时,再继续自己的操作。

异步调用:客户端把消息发送给中间件,不再等待服务端返回,直接继续自己的操作。

  • 是一种进程间的通信方式(服务-客户)

  • 它允许应用程序调用网络上的另一个应用程序中的方法

  • 对于服务的消费者而言,无需了解远程调用的底层细节,是透明的

    需要注意的是RPC并不是一个具体的技术,而是指整个网络远程调用过程。

    RPC是一个泛化的概念,严格来说一切远程过程调用手段都属于RPC范畴。各种开发语言都有自己的RPC框架。Java中的RPC框架比较多,广泛使用的有RMI、Hessian、Dubbo、spring Cloud等。

1.2. RPC组件

简单来说一个RPC架构里包含如下4个组件:

1、 客户端(Client):服务调用者

2、 客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数打包成网络消息,再通过网络发送给服务方

3、 服务端存根(Server Stub):接受客户端发送过来的消息并解包,再调用本地服务

4、 服务端(Server):服务提供者。

1.3. RPC调用

1、 服务调用方(client)调用以本地调用方式调用服务;

2、 client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体

在Java里就是序列化的过程

3、 client stub找到服务地址,并将消息通过网络发送到服务端;

4、 server stub收到消息后进行解码,在Java里就是反序列化的过程;

5、 server stub根据解码结果调用本地的服务;

6、 本地服务执行处理逻辑;

7、 本地服务将结果返回给server stub;

8、 server stub将返回结果打包成消息,Java里的序列化;

9、 server stub将打包后的消息通过网络并发送至消费方;

10、 client stub接收到消息,并进行解码, Java里的反序列化;

11、 服务调用方(client)得到最终结果。

【小结】

1:RPC介绍

远程过程调用技术,使用接口来调用

2:RPC组件

客户端,客户端存根,服务端存根,服务端

3:RPC调用

客户端->客户端存根->服务端存根->服务端->服务端存根->客户端存根->客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值