目錄
簡介
目錄結構
依賴的其他go組件
參考資料
簡介
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語言基礎即可完成業務需求,
- protoc
- protoc-gen-go
- cobra
- protoc-go-inject-tag
- gorm
參考資料
【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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/214749.html
標籤:其他
上一篇:關于shell
