Golang写的一些基础后端服务,基本包含大多数后端需要的服务
这是我在闲暇时间写的一些基础服务, 基本上大多数后端服务都需要用到的。
它用来帮助我快速开始一个项目,而不是重头开始写,浪费大量时间和精力。
想到哪里写哪里, 我会不断的完善它。
为什么不写成微服务形式,模块分离? 项目体量没有达到。
| 模块 | 说明 | | ------------ | ------------------------------------------------------------------------------------------- | | 验证模块 | 包含
注册/
登陆/
账号激活/
忘记密码/
双重身份认证等 | | 用户模块 | 包含用户信息的模块,
用户资料/
登陆密码/
扫码登录/
交易密码/
用户邀请等 | | 授权模块 | oAuth 授权登陆, 目前支持
微信小程序/
Github/
Gitlab/
钱包转账/
结算等 | | 财务模块 | 所有涉及到钱的的操作都会被记录在此, 例如
转账记录/
消费记录等 | | 横幅模块 | 对于网站相关
Banner的操作,可根据不同的平台设置不同的横幅,例如 PC 端大屏的与 APP 不相同 | | 新闻模块 | 新闻公告类的相关操作, CMS 内容 | | 系统通知 | 系统通知的相关模块,主要用于
管理员发送给全员的通知| | 消息模块 | 用户的个人消息模块, 主要用于
管理员发送给某个用户的通知| | 推送模块 | APP 的推送通知模块,接入第三方
onesignal| | 地区模块 | 包含全国各地区的行政码划分等 | | 地址模块 | 用户设置相关的地址模块,例如
收货地址等 | | 上传模块 | 包含用户
上传文件/图片的相关操作, 包含
hash 去重/
图片压缩/
图片缩放/
图片裁剪等 | | 下载模块 | 包含用户
下载文件/图片的相关操作 | | 邮件模块 | 关于邮件的相关操作,例如
发送邮件, 用于
发送验证码之类 | | 短信模块 | 用于发送短信验证码,接入第三方服务
阿里云/
腾讯云| | 静态文件模块 | 用户访问服务器的静态文件, 放置与
/public目录下的文件 | | 反馈模块 | 用户反馈模块,用户
建议反馈/
BUG反馈等 | | 页面菜单模块 | 定义
后台页面菜单/
页面权限等 | | 日志模块 |
系统日志/
登陆日志/
操作日志/
异常日志等 | | 帮助中心 | 可嵌套的帮助中心模块 | | 配置中心 | 由后台接口控制的配置中心,配置例如 SMTP/短信/小程序 等信息 | | 定时任务模块 | 进行一系列的定时任务,例如切割表,迁移冷数据等 | | 客服系统 | 基于 Websocket 的客服系统,实时消息推送,一对多服务关系 |
首先搭建项目需要的
依赖数据库/服务, 这里推荐使用
Docker。
在 docker 目录中提供了
docker-compose配置文件,方便一键搭建。
然后获取构建好的可执行文件, 找到对应的平台,并且下载。或者自行构建。
你需要使用 5 个文件
启用消息队列消费服务器,用于消费在队列里面的事物。
静态文件服务器。用于静态文件的上传/下载/缩略图等
监听用户相关的接口服务
监听管理员相关的接口服务
5。scheduled_server
定时任务
客服系统
然后复制 .env 到可执行文件目录下,运行可执行文件即可。例如
./user_server start
快速下载可执行文件
curl -fsSL https://raw.githubusercontent.com/axetroy/go-server/master/install.sh | bash -s v0.5.2
首选确保你安装有:
再根据以下命令运行
# 克隆项目 $ go get -v github.com/axetroy/go-server # 拉取项目启用项目依赖(数据库,消息队列等)
$ cd $GOPATH/github/axetroy/go-server # 切换到项目目录 $ cd docker $ ./start.sh
启动接口服务
$ cd $GOPATH/github/axetroy/go-server # 切换到项目目录 $ go run ./cmd/admin/main.go migrate # 同步数据库表 $ go run ./cmd/message_queue/main.go # 启动消息队列 $ go run ./cmd/user/main.go # 运行用户端的接口服务 $ go run ./cmd/admin/main.go # 运行管理员端的接口服务 $ go run ./cmd/resource/main.go # 运行资源类的接口服务 $ go run ./cmd/scheduled/main.go # 运行定时任务 $ go run ./cmd/customer_service/main.go # 运行客服系统
可以通过 .env 文件进行配置
$ make build
在生成的 bin 目录下查找对应平台的可执行文件运行即可
make test
特别感谢 JetBrains 为本开源项目提供免费的 IntelliJ GoLand 授权
The MIT License