这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天。
📜📜📜今天学习的是go框架ketix和hertz。
一、安装kitex代码生成工具
在docker中安装——go install github.com/cloudwego/kitex/tool/cmd/kitex@latest go installgithub.com/cloudwego/thriftgo@latest
1.1下载go语言环境
第一次在docker中使用go,应该先在docker中下载go语言环境
docker pull golang
1.2安装ketix
下载好之后在GUI中选中go语言环境,在其中安装ketix
如果过出现这种报错
在其中输入—— 自动下载 go env -w GO111MODULE=on 设置环境为国内代理 go env -w GOPROXY=goproxy.cn,direct
注:go 版本需要支持 mod
1.3安装 thriftgo
go install github.com/cloudwego/thriftgo@latest
这样就是安装成功了——
二、kitex基本使用
2.1 创建项目目录
- 在gopath/src建立目录/github.com/cloudwego
mkdir -p $(go env GOPATH)/src/github.com/cloudwego
- 进入创建的目录
cd $(go env GOPATH)/src/github.com/cloudwego
2.2 克隆代码
使用git将实例代码克隆到容器中,这里如果遇到了下面的问题,
可以手动配置git的代理。输入如下两个命令就可以了。
使用git将实例代码克隆到容器中指令
git clone https://github.com/cloudwego/kitex-examples.git
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
如果不行的话再输入下面的指令:
git config --global -l
env|grep -i proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
再输入
git clone https://github.com/cloudwego/kitex-examples.git
2.3 运行示例代码
直接启动
进入示例仓库的 hello 目录
cd kitex-examples/hello
- 运行 server
go run .
- 运行 client
另起一个终端后,go run ./client
【这里留一个坑,就是输入完成后,没有反应,找了一天,没有发现问题在哪儿,先放一放吧,往后面学,等有精力再重新看看】
三、hertz安装及使用
3.1安装
❗❗❗大家一定要注意版本问题啊,现在这个时间最新版是1.20版本,这个版本就不可用,可用版本是 1.15,1.16,1.17,1.18,1.19。
这里还遇到了一个小问题,docker run golang:1.18.10 之后,启动容器之后马上又自动关闭了——解决方法(参照这篇文章docker启动容器之后马上又自动关闭了_fengqing5578的博客-CSDN博客_docker启动tomcat镜像启动后自动退出):
- 安装 hz:
go install github.com/cloudwego/hertz/cmd/hz@latest
- 测试是否安装成功
hz -v
(这里我安装成功后,也提示未找到,把终端关掉再另外打开一个终端就好了。)
3.2使用
这里是在docker中使用hertz的,命令很简单。
- 创建项目目录 进入gopath目录
cd $GOPATH
创建src目录
mkdir src
进入src目录
cd src
创建hertz——demo
mkdir hertz_demo
进入目录
cd hertz_demo
生成代码
hz new
整理 & 拉取依赖
$ go mod tidy
3. 运行示例代码
完成以上操作后,我们可以直接编译并启动 Server
$ go build -o hertz_demo && ./hertz_demo
如果成功启动,你将看到以下信息
2022/05/17 21:47:09.626332 engine.go:567: [Debug] HERTZ: Method=GET absolutePath=/ping --> handlerName=main.main.func1 (num=2 handlers)
2022/05/17 21:47:09.629874 transport.go:84: [Info] HERTZ: HTTP server listening on address=[::]:8888
接下来,我们可以对接口进行测试
$ curl http://127.0.0.1:8888/ping
如果不出意外,我们可以看到类似如下输出
$ {"message":"pong"}
到现在,我们已经成功启动了 Hertz Server,并完成了一次调用。