[ CloudWeGo 微服务实践 - 02 ] 上手
目标
实验环境
文档
https://www.cloudwego.io/zh/docs/getting-started/
步骤
环境检查
Go 配置
go env
留意类似如下几项
GO111MODULE="on"
GOBIN="/Users/xxx/go/bin"
GOPATH="/Users/xxx/"
GOPROXY="https://goproxy.io"
安装 kitex 脚手架
# 1、 安装
go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
# 2、是否成功
kitex --version
# 输出
v0.0.6
安装 thriftgo
Thriftgo 是 Go 语言实现的 Thrift IDL 解析和代码生成器
# 1、安装
go install github.com/cloudwego/thriftgo@latest
# 2、是否成功
thriftgo --version
# 输出
thriftgo 0.1.3
创建目录
我们先创建所需目录,一下演示都是将代码放置于 GOPATH 内,因为我们要下载的项目 go.mod 的 module 名包含 目录,所以我们优先创建目录,然后再拉取 expample 代码
# 1、先 cd 到 你的 $GOPATH/src 目录中
cd $GOPATH/src
# 2、执行创建目录的命令
mkdir -p github.com/cloudwego
获取官方示例
在目录 下执行:
git clone git@github.com:cloudwego/kitex-examples.git
运行官方示例
官方文档提供了两种方式,我们选择直接启动,更多方式可以参看。
打开两个终端窗口
都进入到 目录下。
运行服务端
比如,我们在左边窗口,执行:
go run .
效果如下:

运行客户端
比如,我们在右边窗口,执行:
go run ./client
效果如下:

能看到一直在打印字符,我们参看 代码也能知晓。

尝试修改服务端代码
我们在 尝试修改服务端逻辑,比如响应的内容随便修改点。
resp = &api.Response{Message: fmt.Sprintf("我收到你的消息了【%s】,谢谢", req.Message)}

重启服务端、客户端,效果如下:

现在我们已经清楚了基本的用法。
新增接口
编辑
新增 一个请求体和一个响应体,并在 service 中新增一个 接口名
# 新增
struct PingRequest {
1: string message
}
struct PingResponse {
1: string message
}
service Hello {
# 新增
PingResponse ping(1: PingRequest req)
}

重新生成代码
# hello 目录下执行
kitex -service a.b.c hello.thrift
我们看到在 handler.go 文件中有代码变动

修改客户端
我们改一下调用接口
# 改为调用 ping 接口
req := &api.PingRequest{Message: "ping"}
resp, err := client.Ping(context.Background(), req)
重新运行

