kitex的使用方法
环境配置
执行以下命令:
go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
安装成功后,执行 kitex --version
可以看到具体版本号的输出(版本号有差异,以 x.x.x 示例):
$ kitex --version
vx.x.x
编写 IDL
按照开发流程,我们首先需要编写 IDL,这里以 thrift IDL 为例子。
创建 idl
目录用于存放项目 idl
文件
一般不同的服务都会使用不同的 IDL
item.thrift
namespace go example.shop.item
include "base.thrift"
struct Item {
1: i64 id
2: string title
3: string description
4: i64 stock
}
struct GetItemReq {
1: required i64 id
}
struct GetItemResp {
1: Item item
255: base.BaseResp baseResp
}
service ItemService{
GetItemResp GetItem(1: GetItemReq req)
}
代码生成
有了 IDL 以后我们便可以通过 kitex 工具生成项目代码了
kitex -module example_shop idl/item.thrift
生成的代码分两部分,一部分是结构体的编解码序列化代码,由 IDL 编译器生成;另一部分由 kitex 工具在前者产物上叠加,生成用于创建和发起 RPC 调用的桩代码。它们默认都在 kitex_gen
目录下。
kitex 命令行工具提供了 -service
参数能直接生成带有脚手架的代码,接下来让我们为商品服务和库存服务分别生成脚手架。
首先为两个 RPC 服务分别单独创建目录。
mkdir -p rpc/item rpc/stock
再分别进入各自的目录中,执行如下命令生成代码:
// item 目录下执行
kitex -module example_shop -service example.shop.item -use example_shop/kitex_gen ../../idl/item.
拉取依赖
完成代码生成后,我们回到项目根目录,使用 go mod tidy
命令拉取项目依赖
编写商品服务逻辑
我们需要编写的服务端逻辑都在 handler.go
这个文件中