LOADING

加载过慢请开启缓存 浏览器默认开启

kitex

2025/4/9 工具

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 这个文件中