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