如果你想使用Go语言来开发微服务,你的选择无非就是go-micro、go-kit还有就是Go-zero,前两个我没用过,不做评价,今天重点说明一下Go-zero这个框架.
为何要使用Go-zero
首先go-zero对新手非常友好,上手快;其次其简洁开发量少扩展性强;再次其功能强大,能够满足你对微服务的功能需求。
以下摘自官网
强大的工具支持,尽可能少的代码编写
极简的接口
完全兼容 net/http
支持中间件,方便扩展
高性能
面向故障编程,弹性设计
内建服务发现、负载均衡
内建限流、熔断、降载,且自动触发,自动恢复
API 参数自动校验
超时级联控制
自动缓存控制
链路跟踪、统计报警等
高并发支撑,稳定保障了疫情期间每天的流量洪峰
如何使用Go-zero
Go-zero的安装
安装goctl
# 命令行安装(适用于go语言版本>=1.16)
GOPROXY=https://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl@latest
# 确保新安装的goctl在GOPATH/bin目录下,若没有则添加命令行
vi .bashrc
# 添加
> export PATH=$PATH:$GOPATH/bin
source .bashrc
# 检查goctl是否安装完成
goctl -v
# goctl version 1.4.0 darwin/amd64protoc安装
# 方式一,使用goctl检查后自动安装
goctl env check -i -f --verbose
# [goctl-env]: "protoc" is installed
# [goctl-env]: "protoc-gen-go" is already installed in "/opt/coding/project/goproject/bin/protoc-gen-go"
#
# 方式二,使用homebrew来安装
brew install protobuf protoc-gen-go protoc-gen-go-grpc
# 检查是否安装完成
protoc --version
# libprotoc 3.13.0