据介绍,tRPC 总体架构由“框架”和“插件”两部分组成,将核心功能抽象封装成一个个独立的插件,其中虚线框内为 tRPC,中间的红色实线框为框架,蓝色实线框为插件部分。
图片来自网络/侵删
该框架号称“通过对底层通信的封装提供 RPC 的调用方式,从而可以轻松地进行分布式应用开发”,其基于插件化的架构能支持多种业务通信协议,据称可以“灵活对接各种微服务治理平台,帮助业务快速构建所需的微服务体系”。
此外腾讯表示,tRPC 框架还设计了 admin 管理接口,便于用户或者运营平台可以通过调用 admin 接口对服务进行管理。
发现,腾讯将 tRPC 框架的特色归纳如下:
跨语言:基于 Protocol Buffers 来实现跨语言的服务通信。
多通信协议:支持多种通信协议,方便与不同框架进行互通(比如 gRPC)。
支持流式 RPC:更好地适用于大文件上传 / 下载、消息 Push、AI 类语音识别 / 视频理解等多种应用场景。
丰富插件生态:提供大量对接业界微服务组件的插件(比如 Consul / Promethues / Opentelemetry 等),方便用户构建适合自己的服务治理体系。
可扩展:基于框架插件化的设计,用户可以进行二次开发来扩展框架能力,比如:RPC 请求参数校验、鉴权、请求录制等。
流控和过载保护:提供多种应用场景下的流量控制和过载保护插件,防止服务因为访问突增造成过载而不可用。