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
最后编辑:joker.liu 更新时间:2023-05-18 11:54