最近总结了下平时工作中写的微服务, 抽出来一个比较简单直观的微服务项目启动模板. 如果对 Go 微服务选工具库或组织代码有所疑虑的话可以读读看, 限于篇幅这里就放个引言, 全篇可以点链接.
引言
微服务算是一个 Go 语言的主要应用场景, 与 Java 不同 Go 语言生态中并不存在一个像 Spring 那样具有绝对统治力的后端框架. 一般大家都是按照自己的业务需求, 组合一些工具库来实现微服务. 这次就带大家一起来实现一个简单实用的项目模板.
首先分享下我平常写微服务时常用的库:
- 日志: github.com/sirupsen/logrus
- 命令行: github.com/urfave/cli/v2
- 服务器: github.com/gofiber/fiber/v2
- HTTP 客户端: github.com/go-resty/resty/v2
- 参数校验: github.com/go-playground/validator/v10
- JWT: github.com/dgrijalva/jwt-go
- MySQL: github.com/go-sql-driver/mysql
- 错误处理: github.com/gota33/errors
- 初始化工具: github.com/gota33/initializr
这次的项目模板准备支持的特性:
- 命令行启动
- 优雅退出
- 配置仓库
- 访问日志
- JWT
- 结构化错误处理
- 请求校验