目录
简介
github:https://github.com/arrayhua/go_grpc_gorm_micro
ps:不要认为依赖项很多,觉得是需要全部掌握才可以上手哦。其实只需要懂MVC和GO语言基础即可完成业务需求。
微服务、云原生的时代,本项目以go语言为基础,采用grpc面向移动和 HTTP/2 设计(HTTP2好处很多哦),开发微服务项目。
整体技术栈是利用go+grpc+gorm+proto、通过设计好的数据表快速生成curd增删改查代码,包含的功能有:
数据库:mysql,使用gorm实现对数据库的基本操作。
配置文件:使用fsnotify和viper实现yaml格式的配置文件。
控制台:cobra,通过读取mysql数据之后利用text/template进行模版替换。生成路由(api)、proto、服务层(service)的代码样例。
API文档:使用Swagger构建自动化文档。
日志:使用zap实现日志记录。
中间件:目前已经包含的中间件有认证、日志、全局异常处理
todo...接入配置中心、注册中心、
大致系统架构图如下:
目录结构
├── LICENSE
├── README.md
├── api // MVC里面的 C 控制器
│ ├── sys_api.go
├── cmd // 控制台命令
│ ├── LICENSE
│ ├── cmd
│ │ ├── curd.go
│ │ ├── root.go
│ │ └── version.go
│ ├── latest_log
│ └── main.go
├── config
│ ├── config.go
│ ├── gorm.go
│ ├── system.go
│ └── zap.go
├── config.yaml // 项目配置文件
├── curd.sh
├── go.mod
├── go.sum
├── initialize
│ ├── config.go
│ └── gorm.go
├── latest_log
├── lib
│ ├── middleware
│ ├── model
│ │ └── model.go
│ ├── response
│ │ └── response.go
│ ├── swagger
│ ├── tls
│ │ ├── server.key
│ │ └── server.pem
│ ├── tpl
│ │ ├── api
│ │ ├── proto
│ │ │ ├── _model.proto.tpl
│ │ │ └── _service.proto.tpl
│ │ └── service
│ └── utils
├── log
├── main.go // 入口文件
├── model
│ └── sys_generate.go
├── proto
└── service
├── curd.go
├── sys_api.go
依赖的其他go组件
ps:不要认为依赖项很多,觉得是需要全部掌握才可以上手哦。其实只需要懂MVC和GO语言基础即可完成业务需求。
参考资料
【go文档】https://studygolang.com/pkgdoc
【cobra使用】https://honeypps.com/golang/go-command-lib-cobra-guide/
【cobra】https://github.com/spf13/cobra
【go-grpc-middleware】https://github.com/grpc-ecosystem/go-grpc-middleware
【proto Any】https://blog.csdn.net/qq_32828933/article/details/105783982