echo-framework 是基於 echo 搭建用於快速開發的專案框架
安裝
go get -u github.com/nelsonkti/echo-framework
功能敘述
- 支援 gorm、logger 日誌、jwt、cron 定時任務、redis 等
- mysql 資料庫讀寫分離、 負載均衡
- socket.io 通訊協議
- nsq 訊息佇列
- 分散式部署
資料夾結構
config 檔案配置和初始化配置資料
cron 定時任務
lib 日常使用的庫
logic logic 業務邏輯
main 程式啟動入口, 主要可以啟動 http
routes 包含應用的所有路由定義
socket 通訊相關的程式碼,以 socket.io 通訊協議為主
logic 目錄
http 包含了控制器、中介軟體以及表單請求、驗證器等
- controllers 控制器層
- middleware 中介軟體
- models 模型層
- repository 業務層呼叫資料訪問層
- responses 返回層
- services 服務層主要處理業務邏輯
- validators 表單驗證器
mq nsq 生產者和消費者
- producer 生產者
專案介紹
專案預設支援 nsq
、memcache
、redis
,如果不需要,可以在 main
資料夾下 註釋以下程式碼
memcache
//連線 memcache
db.ConnectMemcache(config.Memcache)
redis
//連線redis
db.ConnectRedis(config.RedisIP, config.RedisPassword, 0, "default")
nsq
//連線redis
go func() {
defer helper.RecoverPanic() //producer.StartNsqProducer(config.NSQIP) mq.StartNsqServer(config.NSQIP, config.NSQConsumers)}()
cron
本地預設不啟動, 需要啟動,去掉if
就可以了
//啟動定時任務
if config.Env != "local" {
cron.RegisterCrons(config.RedisIP, config.RedisPassword)}
grom
讀寫分離 DBResolver
// 使用 Write 模式
User.Model().Clauses(dbresolver.Write).First(&User)
執行logic
cd main
go run logic.go
執行socket
cd main
go run socket.go
環境要求
- go >= 1.13
本作品採用《CC 協議》,轉載必須註明作者和本文連結