1、RPC简介

  • 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议

  • 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程

  • 如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用

2、流行RPC框架的对比

此处系比较早期的对比图,截止文章编写时,以上几个框架都已支持 多语言。

3、RPC调用流程

  • 微服务架构下数据交互一般是对内 RPC,对外 REST

  • 将业务按功能模块拆分到各个微服务,具有提高项目协作效率、降低模块耦合度、提高系统可用性等优点,但是开发门槛比较高,比如 RPC 框架的使用、后期的服务监控等工作

  • 一般情况下,我们会将功能代码在本地直接调用,微服务架构下,我们需要将这个函数作为单独的服务运行,客户端通过网络调用

4、网络传输数据格式

  • 两端要约定好数据包的格式

  • 成熟的RPC框架会有自定义传输协议

自定义的网络传输格式一般都包含如下两个部分:

前面是固定长度消息头,后面是变长消息体

5、实现RPC服务端

  • 服务端接收到的数据需要包括什么?

    • 调用的函数名、参数列表,还有一个返回值error类型
  • 服务端需要解决的问题是什么?

    • Map维护客户端传来调用函数,服务端知道去调谁
  • 服务端的核心功能有哪些?

    • 维护函数map
    • 客户端传来的东西进行解析
    • 函数的返回值打包,传给客户端
作者:joker.liu  创建时间:2023-05-18 11:15
最后编辑:joker.liu  更新时间:2023-05-18 11:54