Snow
Snow是一套簡單易用的Go語言業務框架,總體邏輯設計簡潔,支持HTTP服務、隊列調度和任務調度等經常使用業務場景模式。git
Goals
咱們致力於讓PHPer更方便地切入到Go語言開發,在業務框架選擇上貼合PHP主流框架的設計思想,以更低的學習成本快速熟悉框架,致力於業務邏輯的開發。github
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.12redis
Installation
cd $GOPATH/src
cd my-github/my-space
git clone git@github.com/qit-team/snow.git my-project
cd my-project
sh build/shell/replace.sh my-github/my-space/my-project
複製代碼
Build & Run
sh build/shell/build.sh
build/bin/snow
複製代碼
Test demo
curl "http://127.0.0.1:8000/hello"
複製代碼
Documents