Def
Kitex is a Go RPC framework with high-performance and strong-extensibility for building micro-services.
Protobuf is a Google project that's optimized for situations where data is transmitted between multiple micro-services in a platform-neutral way.
官方文档
- Kitex www.cloudwego.io/zh/docs/kit…
- Proto protobuf.dev/
- Proto 语法参考 github.com/mengbin92/p…
如何做
真的很简单~
第一步:安装
可以参考官方文档
安装kitex
go install ``github.com/cloudwego/kitex/tool/cmd/kitex@latest
安装proto
Why?
因为官方提供的idl就是proto 格式
Please ref to this page: grpc.io/docs/protoc…
第二步:在repo中建立proto文件
[Proto 文档的编写]
操作前请先checkout你负责的接口branch,不要直接改main branch!
Copy
看官方文档 抖音项目方案说明-第六届青训营后端项目
如下图,要点:
- 找自己负责的接口
- 复制内容
Paste
项目中新建idl/你的接口名.proto并进行更改,如下图
要点:
-
syntax修改为proto3- kitex只支持3
-
package改为你的接口名 -
添加一行设置,看图
-
message命名规范:首字母大写的驼峰
-
去掉所有
required字段,proto3移除了这个字段
添加一丢丢服务代码
最后需要添加你的服务代码
添加在proto文件的最下面,例如视频流这里只要实现一个get接口,所以我就只要一个rpc就OK了
其中参数和返回应该是根据官方文档的类型来响应
// 视频流服务
service DouyinFeedService {
// 不限制登录状态,返回按投稿时间倒序的视频列表
rpc GetDouyinFeed(DouyinFeedRequest) returns (DouyinFeedResponse) {}
}
第三步:代码生成
这里请优先参考整体开发流程的shell命令