go-zero入门和本地搭建 | 青训营笔记

389 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第2天
由于微服务的广泛使用(似乎都成基础知识了),所以这次的大项目也准备采用微服务。

背景

go语言有很多微服务框架,比如Go-kit,Go-zero,Kitex。而Go-zero是一个集成了各种工程实践的 web 和 rpc 框架,其中包含的 API 定义和生成工具 goctl 可以一键生成代码框架,让程序员可以有更多时间关注业务逻辑的实现。

Go-zero快速入门

环境准备

  1. go语言以及go module配置
    在CMD窗口依次输入下列代码查看环境变量
go env GO111MODULE #值应该是on
go env GOMODCACHE  #输出了路径(不为空)

若不对,则输入下列代码修改

go env -w GO111MODULE="on"
go env -w GOMODCACHE=$GOPATH/pkg/mod
  1. goctl安装
    根据自己go语言的版本在CMD输入对应的指令
# Go 1.15 及之前版本

go get -u github.com/zeromicro/go-zero/tools/goctl@latest

# Go 1.16 及以后版本

go install github.com/zeromicro/go-zero/tools/goctl@latest

安装完成后,可以在 $GOPATH/bin 路径下看到goctl.exe文件

goctl.png
踩的坑:
在CMD中输入 goctl -v 显示不支持的命令。原因是系统的环境变量没有配置
解决方法:编辑系统环境变量,在用户变量中找到Path变量编辑,在Path变量中新建一条,路径为goctl.exe文件所在文件夹
3. etcd安装
github地址 然后选择自己电脑对应操作系统的安装包,解压即可。

运行Demo

新建一个demo文件夹然后在文件夹打开CMD,输入下列指令

go mod init demo
#生成greet服务模板
goctl api new greet
go mod tidy
#启动服务
go run greet.go -f greet/etc/greet-api.yaml

可以看到服务启动了,默认监听的端口是8888,打开浏览器输入http://localhost:8888/from/you可以看到CMD窗口打印出请求日志

总结

微服务架构是现在的主流,目前Go语言也有许多微服务框架可供我们学习,今天只是刚刚入门,比如后面的熔断限流,以及如何将一个项目业务拆分成多个微服务才是更需要思考的。