文盘 Rust -- tonic-Rust grpc 初体验
💡
原文中文,约11400字,阅读约需28分钟。
📝
内容提要
本文介绍了使用基于HTTP/2的gRPC实现tonic调用gRPC的过程,包括创建工程、编写proto文件、生成rust基础代码、构建server和client代码,以及使用grpcurl工具进行测试和让服务端程序支持reflection API。
🎯
关键要点
- gRPC 是一种高性能的远程过程调用框架,tonic 是基于 HTTP/2 的 gRPC 实现。
- 创建一个新的工程 'tonic_sample',包含 server 和 client 端。
- 编写 proto 文件以描述报文,定义请求和响应的结构。
- 使用 build.rs 文件通过 tonic-build 生成 Rust 基础代码。
- 构建 server 端代码,处理不同类型的 RPC 调用,包括单次调用和流式调用。
- 构建 client 端代码,演示如何调用 server 的不同 RPC 方法。
- 使用 grpcurl 工具进行测试,确保 server 和 client 的功能正常。
- 为服务端程序添加支持 reflection API 的功能,以便于使用 grpcurl 进行服务描述和调用。
- 通过修改 build.rs 和 server 代码,注册编码的文件描述符集以实现 gRPC 反射。
- 测试反射功能,确保可以正确列出服务和描述服务的结构。
➡️