RPC与HTTP

1、什么是RPC协议:

        RPC:远程过程调用,一种进程间通信方式。允许像调用本地服务一样调用远程服务。

RPC:

包含四个核心组件。

  • 客户端(client):服务的调用方

  • 服务端(server):服务提供方

  • 客户端存根(client stub,即,助手):将客户端请求参数打包成网络消息,再发给服务方

  • 服务端存根(server stub,即,助手):接收客户端发来的消息,将消息解包,并调用本地方法

2、RPC与HTTP并不位于同一层面,两者概念截然不同:

        RPC与HTTP并不位于同一层面,两者的概念截然不同,RPC远程方法调用,即一个应用调用另一个应用的接口。

       如何在一个应用中调用另一个应用?可以通过HTTP协议,也可以通过自定义的TCP协议实现通信。最终实质上完全相同,都是通过Socket解析调用方的参数,最后再将处理结果通过Socket传输。

       所以,RPC是如何实现服务间的通信,而HTTP可以视为服务间通信采取的一种数据传输格式。

3、RPC过程

1. 调用者(客户端Client)以本地调用的方式发起调用;
2. Client stub(客户端存根)收到调用后,负责将被调用的方法名、参数等打包编码成特定格式的能进行网络传输的消息体;
3. Client stub将消息体通过网络发送给服务端;
4. Server stub(服务端存根)收到通过网络接收到消息后按照相应格式进行拆包解码,获取方法名和参数;
5. Server stub根据方法名和参数进行本地调用;
6. 被调用者(Server)本地调用执行后将结果返回给server stub;
7. Server stub将返回值打包编码成消息,并通过网络发送给客户端;
8. Client stub收到消息后,进行拆包解码,返回给Client;
9. Client得到本次RPC调用的最终结果。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值