go-zero(一)| 概览
2020年8月开源的go-zero
微服务框架非常热门。他来自好未来(学而思)的研发团队。这样的研发团队还是很有想法的。当然类似这样的微服务框架其实早就有了,比如go-micro
,go-kit
等大家也可以尝试。
项目地址:https://github.com/tal-tech/go-zero
文档说明:https://www.yuque.com/tal-tech/go-zero
go-zero介绍
go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。
go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。
使用 go-zero 的好处:
- 轻松获得支撑千万日活服务的稳定性
- 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码
- 微服务治理中间件可无缝集成到其它现有框架使用
- 极简的 API 描述,一键生成各端代码
- 自动校验客户端请求参数合法性
- 大量微服务治理和并发工具包
放一张官方的最佳实践全家桶:
goctl
go-zero
的一大特色就是内置框架代码生成工具goctl
。他能生成啥代码呢?看看作者咋说:
所有绿色背景的功能模块是自动生成的,按需激活,红色模块是需要自己写的,也就是增加下依赖,编写业务特有逻辑。
看到这个图的介绍是不是很激动,一套代码搞定了这么多的事情。这就是架构的力量,大公司就是要搞这种研究的。
我看了一部分源代码,有些很不错的地方,也有些地方感觉实现的并不好,值得改进。
安装go-zero
go get -u github.com/tal-tech/go-zero/tools/goctl
安装goctl
cd bin\pkg\mod\github.com\tal-tech\go-zero@v1.1.4\tools\goctl
go build goctl.go
得到的goctl.exe文件放入 $GOPATH\bin目录下。
api语法说明:https://github.com/tal-tech/zero-doc/blob/main/doc/goctl.md
目标
要不给自己立个目标?分三步走:
- 学习框架,先用起来
- 研究框架,持续改进
- 总结经验,自立门户
(完)
- 原文作者: 闪电侠
- 原文链接:https://chende.ren/2021/01/27134452-001-go-zero-intr.html
- 版权声明:本作品采用 开放的「署名 4.0 国际 (CC BY 4.0)」创作共享协议 进行许可