go-zero的了解与基础安装 | 青训营笔记

306 阅读2分钟

go-zero的了解与基础安装 | 青训营笔记

简介

go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性。由好未来开源,经历了实际生产的检验

go-zero 适合做微服务快速开发的特性

Go-zero 拥有强大的项目脚手架工具 goctl。goctl 和前端中的 Vue-cli、React-cli 一样方便。goctl 通过配置文件可以生成 API、rpc 和 model 等相关代码。同时,go-zero 拥有较完备的项目框架。脚手架生成的项目框架足以应对常见的需求。CRDU 等需求只需要做 “填空题”,在已生成的代码上填充必要的业务逻辑。其他缓存鉴权等需求,框架中也早已内置。

另外,go-zero 拥有独特的“渐进式”框架。“渐进式”是前端Vue框架的一大特性,大意是“易于上手,还便于与第三方库或既有项目整合”。本文借用这个概念是想表明 go-zero 对项目的入侵性较少,go-zero 生成的代码可以拆开使用,逐步对老项目进行改造。 低耦合的模块设计,丰富的中间件,插件和工具:

  • go-zero 中各模块耦合程度低,方便通过文档中的组件中心寻找合适的中间件或自己编写
  • 如果觉得 goctl 不能满足需求,goctl 还支持 plugin 命令对 goctl 本身进行扩展。
  • go-zero 的很多配置文件是自定义语法。 go-zero 还提供了 intellij 和 vscode 插件,提供了语法高亮错误检查等编辑增强功能。使用起来十分方便

安装

go install https://github.com/tal-tech/go-zero/tools/goctl@latest

快速生成api服务

goctl api new greet  
cd greet  
go mod init  
go mod tidy  
go run greet.go -f etc/greet-api.yaml  

注意默认侦听在 8888 端口(可以在配置文件里修改),可以通过 curl 请求:
快速生成rpc服务

goctl rpc new greet

快速生成model服务

方式1:通过ddl生成

goctl mysql goctl model mysql ddl -src="xxxxxxxx" -c=true(是否加缓存) 

快速生成model服务

方式2:通过datasource生成

goctl model mysql datasource -url="xxxxxxxxxxx"