RPC框架介绍

IT知识
504
0
0
2022-04-21
标签   RPC框架

RPC框架介绍

在大规模的复杂互联网业务中,RPC框架是构建后端分布式系统必不可少的一个基础组件。它通过封装序列化/反序列化、网络IO操作、网络报文传输等诸多细节,有的甚至集成服务注册、监控与运营等功能,让开发人员专注于业务逻辑的开发,大幅提升了业务开发团队的工作效率。那如此强大的RPC框架究竟是个什么样的工作原理呢?今天,我们就对RPC来做一个全面的了解。

什么是RPC

RPC,Remote Procudure Call,中文译为远程过程调用。过程调用就可以理解我们常说的函数调用,远程过程调用是说调用服务端的接口跟调用本地接口一样方便。

RPC框架介绍

如上图所示,RPC框架把底层的通信细节做了封装,业务代码如同调用一个本地函数一样完成业务功能。

如果没有RPC框架,我们要调用一个服务端接口,必须按如下步骤进行:

  1. 创建一个本地socket
  2. 使用TCP连接服务端socket(这里假设使用TCP进行通信)
  3. 组装请求报文,并序列化
  4. 调用send()发送请求报文
  5. 调用recv()收取服务端的回包
  6. 如果通信结束,调用close()关闭本地socket

我们看到这个过程及其繁琐,而且繁琐的同时增加了出错的概率。RPC框架解决的问题就是把上述公共流程封装为库,让业务直接使用。

业界有哪些好用的RPC框架

  • thrift
  • thrift是由Facebook于2007年开源的RPC框架,支持C++、Java、Python、PHP、go等多种语言,被认为是业界比较优秀的RPC框架。
  • gRPC
  • gRPC是Google开源的基于HTTP/2和ProtoBuf构建的通用RPC框架。
  • bRPC
  • 百度开源的RPC框架,无论是代码质量还是文档都非常优秀,在百度也经历了多个业务的线上考验,非常值得推荐。
  • Tars
  • 腾讯的开源的RPC框架,支持C++、Java,在传统RPC框架的基础上还集成了服务监控、运营等周边系统,在腾讯内部使用广泛。