go框架 | 青训营笔记

142 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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

image.png

1.2安装ketix

下载好之后在GUI中选中go语言环境,在其中安装ketix

image.png 如果过出现这种报错

image.png

在其中输入—— 自动下载 go env -w GO111MODULE=on 设置环境为国内代理 go env -w GOPROXY=goproxy.cn,direct

注:go 版本需要支持 mod

1.3安装 thriftgo

go install github.com/cloudwego/thriftgo@latest

这样就是安装成功了—— image.png

二、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

image.png

2.2 克隆代码

使用git将实例代码克隆到容器中,这里如果遇到了下面的问题,

image.png

可以手动配置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

image.png

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。

image.png 这里还遇到了一个小问题,docker run golang:1.18.10 之后,启动容器之后马上又自动关闭了——解决方法(参照这篇文章docker启动容器之后马上又自动关闭了_fengqing5578的博客-CSDN博客_docker启动tomcat镜像启动后自动退出):

image.png

  1. 安装 hz:go install github.com/cloudwego/hertz/cmd/hz@latest
  2. 测试是否安装成功hz -v (这里我安装成功后,也提示未找到,把终端关掉再另外打开一个终端就好了。)

3.2使用

这里是在docker中使用hertz的,命令很简单。

  1. 创建项目目录 进入gopath目录
cd $GOPATH

创建src目录

mkdir src

进入src目录

cd src

创建hertz——demo

mkdir hertz_demo

进入目录

cd hertz_demo

生成代码 

hz new

整理 & 拉取依赖

$ go mod tidy

image.png

image.png 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

image.png

接下来,我们可以对接口进行测试

$ curl http://127.0.0.1:8888/ping

如果不出意外,我们可以看到类似如下输出

$ {"message":"pong"}

image.png 到现在,我们已经成功启动了 Hertz Server,并完成了一次调用。