go-zero学习手记1-环境配置

go-zero学习手记 1-环境配置

前言

先给出官方在语雀的文档地址

简单介绍下go-zero的出生背景,go-zero出自好未来之手的一个微服务框架(好未来是干啥我也没听说过,听说是个教育平台),为了解决业务单体构架性能问题而设计的一个开源框架,在我看来go-zero更像是个脚手架。

在去年年中我就一直在观察几个基于go的微服务框架,第一个接触到的是B站的kratos,用了用挺憋手的,组件不太好替换,可能是我水平问题我就不评价太多。go-micro看起来挺好的,但之后的版本号问题,觉得不太适合我这种水平的练手,go-kit也是同样的问题。在今年看到了dubbo-go,看起来挺美好的样子,可以无缝兼容dubbo,但还是阿里存在的那个问题,dubbo-java已经停更了,没有必要再去为了强行兼容java再去学习dubbo-go。最后我看到了go-zero,一开始我是抗拒的,毕竟好未来没听过,对这个框架没有足够的信心,用的人也不多。但是没办法,接下来的项目注定涉及到大流量,凭借现有的多实例分流虽然能解决问题,但不是最好的解决办法,就先看看go-zero的文档,开着看着就发现这只是个脚手架,大部分组件还是可以做到随意替换的,所以决定开始那这个框架开刀。

废话不多说开整。

golang环境配置

熟悉的小伙伴可以先跳过这一节,windows下直接去这里下载msi安装包安装就可以,环境变量是自动配置的,类unix系统需要手动配置环境变量:

1
2
3
export GOROOT=/安装路径/go
export GOPATH=/你自己定义 //最好不要跟GOROOT重合,毕竟版本得升级的嘛
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

GOROOT是golang的安装路径,GOPATH是go的二进制工具包的地址和源码地址,之所以要求不跟GOROOT路径重合是为了方便管理golang的版本,最早没有mod版本管理的时候我按官方的文档放一块了,导致升级后一塌糊度。GOPATH下有bin和src文件夹,bin存放的是二进制工具,src存放的是源码,pkg是库文件。

没有科学上网的小伙伴可能在下载一些go的依赖包的时候会出现无法下载卡住的情况,可以通过配置GO环境变量代理的方式:

1
export GOPROXY=https://goproxy.cn/

上述改动在当前控制台需要source你的环境变量文件夹才可以成功。

go-zero环境配置

毕竟go-zero用的是grpc,所以protoc这个工具先得准备好。

protoc安装

这里是protoc-github下载的地址,小伙伴可以根据自己的环境下载,下载完成并解压缩到自定义的目录,然后编辑环境变量

1
export PATH=$PATH:/protoc解压目录/bin

source之后生效,我在windows上配置的时候出现了无法生效的问题,最后还是重启解决的。

go-zero 脚手架安装

go-zero环境好弄,推荐装他的goctl脚手架工具。

1
2
go get -u github.com/tal-tech/go-zero/tools/goctl
go get -u github.com/golang/protobuf/protoc-gen-go

protoc-gen-go是proto文件的编译器插件。

至此环境基本设置完毕,下篇开始使用go-zero。