RPC 框架¶
RPC 框架封装了 RPC 的细节,使得开发者可以和像调用一个本地函数一样调用 RPC 方法,提高开发效率。总的来说,一个基本的 RPC 框架通常需要提供以下功能:
- 提供 RPC Stub
- 管理进程之间的网络连接
- 将请求根据协议编码发送出去,并接收响应
一些高级的功能还包括:
- 负载均衡
- 服务发现
- 名字服务
- 故障屏蔽
- 过载保护
- 安全鉴权
- 服务质量控制(QoS)
简单的 RPC 框架可以很简单,只需要套用现有的序列化协议,再包装一下操作系统提供的网络接口,就能基本实现一个极简的 RPC 框架。但是,出于性能、可靠性以及可扩展性的考虑,RPC 框架往往是很复杂的,涉及到无锁编程、异步编程、Cache 优化、多核优化、自定义内存管理、实现可扩展的插件接口等等高级的编程技术。
许多公司都推出了自己的 RPC 框架,例如百度的 brpc,Google 的 gRPC。而一些公司也会自行开发内部的 RPC 框架,与公司内部服务与工具更紧密地结合起来,更加简化开发者开发流程。例如,可以对 RPC 的服务发现以及连接初始化等进行改造,使得开发者可以不用手动填写对方服务的 RPC 地址,只需要导入链接需要调用服务的 RPC 客户端库,就能直接调用,更接近直接调库的体验。
最后更新:
2021-10-18 17:03:55
本页作者: