Snow
Snow是一套簡單易用的Go語言業務框架,整體邏輯設計簡潔,支援HTTP服務、佇列排程、任務排程和和指令碼任務等常用業務場景模式。
Goals
我們致力於讓PHPer更方便地切入到Go語言開發,在業務框架選擇上貼合PHP主流框架的設計思想,以更低的學習成本快速熟悉框架,致力於業務邏輯的開發。
Features
- HTTP服務:基於gin進行模組化設計,簡單易用、核心足夠輕量;支援平滑重啟;
- 任務排程:基於cron進行模組化設計,簡單易用;
- 佇列排程:基於自研的高效能佇列排程服務worker,通用的Queue介面化,解耦佇列排程與底層佇列驅動;支援平滑關閉;
- Cache: 通用的快取介面化設計,核心元件實現了外掛式的redis驅動支援,可擴充套件;
- Database: 使用成熟的ORM庫,有豐富的資料庫驅動支援和特性;
- Queue: 通用的介面化設計,框架實現了redis、alimns作為佇列底層驅動,支援可擴充套件;
- Config: 採用toml語義化的配置檔案格式,簡單易用;
- Logger: 基於logrus進行封裝,內嵌上下文通用資料採集和trace_id追蹤;
- Request and Response:定義輸入和輸出資料實體格式;
- Curl: 簡單易用的Curl請求庫;
- 腳手架:方便快捷的建立新專案,可一鍵升級;
Quick start
Requirements
- Go version >= 1.12
- Global environment configure (Linux/Mac)
export GO111MODULE=on
export GOPROXY=https://goproxy.io
Installation
go get -u github.com/qit-team/snow/tool/snow
cd $GOPATH/src
snow new snow-demo
Build & Run
cd snow-demo
sh build/shell/build.sh
build/bin/snow
Test demo
curl "http://127.0.0.1:8000/hello"