zpudding以本人+我的小猫命名 主打一个宠爱, 它是一个集成了服务器开发工具和自动化生成编译服务器底层代码的微服务框架
可以直接使用tools的自动化生成工具生成一个完整的服务器框架, 快速开发
-
cmd/protoc-gen-rpcx: 将rpcx集成到proto生成里面
-
pkg/net网络库对外有两个接口:InitService(),Listen() InitService接口的传入参数是addr,协议(现在仅支持TCP)类型,消息回调函数 Listen接口主要是开启网络服务,监听,收发消息
-
pkg/rpcx库主要封装了rpcx服务器的创建,运行接口,客户端创建,调用接口,代码简单明了, 详细使用可参考protobuf插件集成rpcx: https://github.com/mimis-s/zpudding/cmd/protoc-gen-rpcx
-
pkg/dfs封装了s3,cloud storage, minio三个分布式文件存储系统的集成api
-
pkg/rabbitmq使用topic主题交换机, 支持同时给多个消费者, 有选择性的分发消息
-
pkg/app库是微服务框架底层服务启动框架
-
pkg/zlog是基于lumberjack日志库二次开发的日志库, 参考链接:https://github.com/natefinch/lumberjack
-
pkg/cache是用redis给db操作做了一个二级缓存, 和其它项目缓存的区别在于, 我们这个是当玩家在线的时候保证一些重要数据一直是热数据, 由于项目中的高频地图行为开发的缓存库
路径: https://github.com/mimis-s/zpudding/tools/auto_tool
自动化生成项目代码,目录工具, 用户可自定义生成项目路径及名称和想要生成的哪些服务
可在yaml文件中自定义内容: https://github.com/mimis-s/zpudding/tools/auto_tool/global/boot.yaml
outpath: "/home/zhangbin/work/pro/src/go_pro/cmd_test" // 生成项目的路径
name: "cmd_test" // 项目名(用于生成go mod, 例如:github.com/mimis-s/test)
services:
- tag: "account"
// 下面这些项目现在是固定生成的, 不受配置影响, 后面有需求会考虑能自由添加项目
templateIds: ["dao", "job", "service", "server", "view"]
- tag: "bag"
templateIds: ["dao", "job", "service"]