mirror of
https://github.com/xinliangnote/go-gin-api.git
synced 2024-04-21 12:31:46 +00:00
f4072dc5fb249f72759035a4bed772e59a8d9f53
██████╗ ██████╗ ██████╗ ██╗███╗ ██╗ █████╗ ██████╗ ██╗
██╔════╝ ██╔═══██╗ ██╔════╝ ██║████╗ ██║ ██╔══██╗██╔══██╗██║
██║ ███╗██║ ██║█████╗██║ ███╗██║██╔██╗ ██║█████╗███████║██████╔╝██║
██║ ██║██║ ██║╚════╝██║ ██║██║██║╚██╗██║╚════╝██╔══██║██╔═══╝ ██║
╚██████╔╝╚██████╔╝ ╚██████╔╝██║██║ ╚████║ ██║ ██║██║ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝
* [register cors]
* [register rate]
* [register panic notify]
* [register pprof]
* [register swagger]
* [register prometheus]
go-gin-api
基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,使用简单,致力于进行快速的业务研发,同时增加了更多限制,以约束项目组开发成员、规避混乱无序和自由随意。
供参考学习,线上使用请谨慎!
查看 Jaeger 链路追踪代码,请查看 v1.0版,文档 jaeger.md 点这里。
持续更新...
Features
- 包管理工具 Go Modules
- Gin 支持优雅关闭
- 配置文件解析库 Viper
- 文档使用 Swagger 生成
- 性能分析使用 pprof
- 集成
- 存储
- MySQL
- Redis
- MongoDB
- gRPC
- ...
Quick start
Requirements
- Go version >= 1.12
- Global environment configure (Linux/Mac)
export GO111MODULE=on
export GOPROXY=https://goproxy.io
Build & Run
cd go-gin-api
go run main.go
swagger
http://127.0.0.1:9999/swagger/index.html
// 生成文档
$ go get -u github.com/swaggo/swag/cmd/swag
$ swag init
pprof
http://127.0.0.1:9999/debug/pprof
说明文档:
// 查看 CPU 信息
go tool pprof 127.0.0.1:9999/debug/pprof/profile
...
(pprof)
//输入 web,生成 svg 文件。
//输入 png,生成 png 文件。
//输入 top,查看排名前 20 的信息。
//查看更多命令,请执行 pprof help。
其他同理,比如:
// 查看 内存 信息
go tool pprof 127.0.0.1:9999/debug/pprof/heap
// 查看 协程 信息
go tool pprof 127.0.0.1:9999/debug/pprof/goroutine
// 查看 锁 信息
go tool pprof 127.0.0.1:9999/debug/pprof/mutex
如果还想查看火焰图,请执行如下命令:
// 1.下载 pprof 工具
go get -u github.com/google/pprof
// 2.启动可视化界面
pprof -http=:9998 xxx.cpu.prof
// 3.查看可视化界面
http://127.0.0.1:9998/ui/
Special Thanks
Learning together
Languages
Go
42%
JavaScript
35.8%
HTML
20.9%
CSS
0.8%
SCSS
0.2%
Other
0.2%
