深入浅出RPC框架 | 青训营

163 阅读2分钟

RPC:远程函数调用

image.png RPC需要解决的问题: 1.函数映射 2.数据转换成字节流 3.网络传输 一次RPC的完整过程 1.IDL文件:通过中立的方式来描述接口,使得在不同平台上运行的对象金和用不同语言编写的程序可以相互通信 2.生成代码:把IDL文件转换成语言对应的静态库 3.编解码:从内存中表示到字节序列的转换称为编码 4.通信协议:规范了数据在网络中的传输内容和格式 5.走TCP/UDP传输 分层设计:

image.png 协议构造:

image.png RPC五大关键指标:

  • 稳定性:RPC框架需要保证在各种网络环境和异常情况下,能够正常地完成请求和响应,不会出现丢包、超时、重复、乱序等问题。稳定性的评价指标包括可用性、容错性、自动恢复能力等。
  • 易用性:RPC框架需要提供简单而强大的编程接口,让开发者可以方便地使用RPC框架进行分布式系统的开发。易用性的评价指标包括编程模型、IDL文件、生成代码、编解码方式、服务注册和发现等)。
  • 扩展性:RPC框架需要支持多种通信协议、传输层、序列化方式、负载均衡策略等,让开发者可以根据不同的场景和需求选择合适的组件。扩展性的评价指标包括协议支持、组件插拔、自定义扩展等。
  • 可观测性:RPC框架需要提供丰富的监控和日志信息,让开发者可以实时地了解RPC框架的运行状况和性能指标,以及定位和排查问题。可观测性的评价指标包括监控数据、日志记录、链路追踪等。
  • 高性能:RPC框架需要在保证稳定性和易用性的前提下,尽可能地提高请求和响应的速度,减少网络开销和资源消耗。高性能的评价指标包括吞吐量、延迟、资源占用等。