RPC技术到底为何物?

9 篇文章 2 订阅
4 篇文章 0 订阅

RPC概念

RPC即远程过程调用(Remote Procedure Call),这么讲你可能不明白,画个图

比如两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数或者方法,由于不在一个内存空间,不能直接调用,这时候需要通过就可以应用RPC框架的实现来解决。

1、 RPC核心过程

既然它的意思是客户端和服务端之间数据交互的过程,那包含了哪些东西?

rpc依然遵从了客户端/服务端的模型,其核心过程包括客户端和服务端的通讯协议寻址数据序列化/反序列化

2、 RPC协议

协议就是,详细的规定了上面说的RPC三个核心过程怎么样去实现。比如:规定协议是tcp还是udp,你通过什么方式去找到服务端的地址,请求/响应数据如何去组装。

http,dubbo-rpc,rmi等很多协议都属于rpc范畴,如果你要基于他们去实现rpc,就得遵守它们这个协议。

就像你要去写一个http客户端,你就必须按照它的要求去实现,组装数据的方式也要按它的来。

3、 RPC框架

对上述核心过程进行了封装,不需要开发人员自己去定义协议、实现序列化的细节工作,这样的组件称为RPC框架,常见的框架比如:thrift,gRpc,dubbo,motan 。

大型公司都会搞自己的一套RPC框架,你懂了核心原理,就会发现没什么区别,万变不离其中!

4、既然有http请求协议,为什么还要用RPC

在这里我们需要搞清楚一点的是,HTTP和RPC在概念上就是不同的,两种是不能相提并论的。

  • HTTP是超文本传输协议;

  • RPC是指远程过程调用,它是对不同系统间相互调用方式的一种描述,严格意义上应该称它是一种解决方案(概念)或技术实现的框架。RPC框架底层一般支持多种协议,比如:HTTP、TCP、自定协议等。

与RPC对等的概念则是基于http的API接口。

http API是在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便。

但是如果是一个大型的网站,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了:

  • 首先,就是长链接,不必每次通信都要像http 一样去3次握手什么的,减少了网络开销;
  • 其次,RPC框架提供的是面向服务的封装,它针对服务的性能效率、可用性等都做了优化(比如提供了:注册中心、服务治理、负载均衡、二进制传输、熔断、服务降级等功能),是一套完整的解决方案;
  • 再次,RPC可以利用protobuf这种二进制编码协议对内容进行编码,实现信息的二进制流传出,效率非常高。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值