最近捣鼓 go 后端,发现好看的分布式后端管理系统好少, 干脆自己写一个,基于go-zero框架开发,对于美感有要求的我来说, 必定是要好看又好用, 不过从零开始做一个后端系统也要费点功夫,前前后后花费一个多月总算把雏形做出来了。
现在的项目也还不太完善, 还需要继续优化,不过基础功能是有了,rbac用户管理,注册登录,用户管理,文件上传都基本完成,内置支持go-swagger, gorm, 目前计划完善菜单参数,以及添加邮箱发送,支付等功能。
特性
- 最新技术栈:使用 gorm, casbin, kafka 等前沿技术开发
- 完全支持go-swagger: 直接在api文件内编写注释即可直接生成swagger文档
- 统一的额错误处理: 整个系统拥有国际化的统一错误处理
- 国际化:内置完善的国际化方案
- 服务注册发现 完善的服务注册发现机制
- 权限 内置完善的动态路由权限生成方案
- 其他 流量控制, ES服务
配置示例
Name: core.rpc # 服务名称
ListenOn: 127.0.0.1:8501 # 监听地址
Etcd:
Hosts:
- 127.0.0.1:2379 # etcd地址
Key: core.rpc # 服务名称,用于服务发现
User: root # 用户名
Pass: xxx # 密码
DatabaseConf:
Type: mysql # 服务器类型 mysql 或 postgresql
Path: 127.0.0.1 # 地址
Port: 3306
Config: charset=utf8mb4&parseTime=True&loc=Local
DBName: simple_admin # 数据库名称
Username: # 用户名
Password: # 密码
MaxIdleConn: 10 # 最大空闲连接数
MaxOpenConn: 100 # 最大连接数
LogMode: error # 日志级别
LogZap: false # 使用 zap 日志
Log:
ServiceName: coreRpcLogger # logger名
Mode: file # 日志类型 file为存储为文件
Path: /data/logs/rpc # 文件存储路径
Level: info # 日志级别 info/error
Compress: false # 压缩
KeepDays: 7 # 保存时间
StackCooldownMillis: 100
RedisConf:
Host: 127.0.0.1:6379 # redis 地址
Type: node # 节点类型
Pass: xxx # 密码