跳到主要内容

gRPC 介绍

gRPC 是 Google 开源的流行的 RPC 框架,基于内部开发的名为 “Stubby” 的系统。 它是基于 Protocol Buffers 、 用于序列化结构化数据的、与 Google 语言无关、平台无关的扩展机制。

Ent 支持使用 ent/contrib 中的插件自动生成 gRPC 服务。

在高一层面来看 Ent 与 gRPC 之间的集成是这样的:

  • 使用名为 entproto 的命令行(或代码生成钩子)生成 ent 模式中的协议缓冲区定义和 gRPC 服务定义。 模式使用 entproto 注解辅助不同域之间的映射。
  • 使用名为 protoc-gen-entgrpc 的 protoc(protobuf 编译器) 插件生成 entproto 生成的 gRPC 服务定义的实现, 并使用 ent.Client 来读写数据库。
  • 开发者编写嵌入了生成服务实现的 gRPC 服务器。

本教程中我们会使用 Ent/gRPC 集成创建一个完全可用的 gRPC 服务器。

代码

本教程的最终代码位于 rotemtam/ent-grpc-example