# Gj-galaxy **Repository Path**: GjFamily/Gj-galaxy ## Basic Information - **Project Name**: Gj-galaxy - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-11-26 - **Last Updated**: 2026-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gj-galaxy 分布式运行框架 --- ## 🚀 新功能:AI 数据统计分析 ### Data Stats - 无需开发接口的数据统计工具 **只需提出统计需求**,Claude Code 自动查询数据库并生成分析报告,**无需开发任何业务接口**! #### 快速开始 **第一步:在项目中启用通用查询API(一次性配置)** ```go // project/vie/vie/router/def.go import "gddgame.cc/galaxy/utils/dataquery" func RegisterRoutes(r *gin.Engine, db *gorm.DB) { config := &dataquery.SecurityConfig{ AllowedTables: []string{"player", "player_payment", "player_login_log"}, DeniedFields: []string{"password", "token"}, MaxLimit: 10000, } dataquery.RegisterRoutes(r.Group("/api/_query"), db, config) } ``` **第二步:配置API地址** ```bash cd tools/devserver go build -o devserver main.go ./devserver profile add vie --remote=https://api.game.com --token=xxx ``` **第三步:直接提出统计需求** 在 Claude Code 中说: ``` 统计最近一个月的玩家充值数据,按VIP等级分组 ``` Claude Code 自动执行统计并返回完整的分析报告! #### 核心优势 ✅ **无需开发接口** - 一次配置,永久使用 ✅ **即问即答** - 提出需求,立即得到结果 ✅ **自动分析** - AI自动识别表结构和字段 ✅ **灵活强大** - 支持任意表、任意条件、任意统计 ✅ **多表关联** - 自动识别表关系并构建JOIN查询 ✅ **安全可控** - 白名单机制、SQL注入防护 #### 详细文档 - 📖 **[Data Stats 主文档](utils/datastats/README.md)** - 完整使用说明 - 🚀 **[快速入门](utils/datastats/QUICKSTART.md)** - 3步开始使用 - 🎯 **[方案总结](utils/datastats/SUMMARY.md)** - 架构设计和方案总结 - 💡 **[使用示例](utils/datastats/EXAMPLE.md)** - 5个实际场景示例 - 🌟 **[多表关联查询](utils/datastats/MULTI_TABLE.md)** - 自动分析多张表 - 🔧 **[通用查询API](utils/dataquery/README.md)** - API详细文档 - 📚 **[API Client](utils/apiclient/README.md)** - 客户端使用说明 --- ## 底层功能 * 命令行解析 * debug:全局debug开关 * test: 测试config及依赖是否正确 * pid:提供pid实现,快速建立linux服务 * log:提供文件日志功能,支持%Y%M%D%H级别的日志分割 * server注册机制 * config解析,通过server注册,可以绑定必要的配置检测 * server依赖管理:合理的配置注册顺序,可以向上提供对应的依赖绑定 * logger统一接口,全局实现 ## 内部组件 * satellite:提供统一的底层通信, * comet:实现tcp+udp调度的方案,实现高性能通信基础 * nebula:基本的socket通信+namespace的业务划分 * web:提供对外接口用于修改或访问资源信息 * asteroid:提供server2server的通信 * cluster:基于房间提供集群内部通信模式 * app:已应用为单位进行多租户模式 * balance:负载均衡模式,支持副本集,故障转移 * hash:一致性hash分布 * core:平台功能集成,软件包 * ska:内部日志记录,提供统一的接口 * cmd:提供自定义的命令解析接口,完全兼容galaxy ## Server插件机制 * 提供服务的Register接口,在preRun之后Run前进行扩展服务的注册,注意顺序 * 服务可以将需要的config提供出来,进行全局config配置 * 服务名称全局唯一,服务注册有顺序 * 服务生命周期: * OnCreate=>服务初始化,按顺序执行,验证config,初始化内部组件,并提供依赖组件到server * OnStart=>已初始化完毕,所有服务依次开启,和注册顺序相反 * OnStop=>接收到退出命令,所有服务依次关闭,和注册顺序相反 * 简易扩展Server:composerServer,基于Composer * 自定义config格式,按需挂载生命周期函数 * 依赖于composer,web|room|cluster则根据mode进行按需加载 ## web服务扩展 * 全局web提供了http服务 * 可以按需添加路由扩展 * 建立了丰富的middleware: * session * 错误异常handler * 输入输出打印 * json输出 * RealIp格式化 * Restful支持: * 提供格式化的输出 * 提供分页,统一异常处理 * 已资源为入口,进行定义 ## satellite服务扩展 * 全局socket服务提供了tcp+udp的调度方案 * 可以通过web服务扩展进行websocket通信 * 粘包协议:(扩展其他协议:mqtt协议) * 支持压缩数据:Snappy * 使用变长编码,最多支持:128M * 扩展1位交由通信协议扩展 * 通信协议扩展: * 提供了server2client的通信 * nebula: * 可以按namespace的方式注册到消息中:支持任意数量的接口 * 按namespace进行connect * 支持ack * 内部msg序列化 * 支持middleware进行消息过滤 * comet: * 自定义编码,提供Bag结构,便于序列化 * 提供授权接口,支持动态刷新 * 支持middleware进行消息过滤 * 实现:publish/subscribe的聊天,同步系统 ## asteroid服务扩展 * 提供server2server的通信 * layer: * 一个ip+port为layer * 通信层:挂载不同业务 * 通信方案:使用satellite服务实现super的通信 * region: * 通过adapt进行多协议订阅 * 提供room为单位的通讯模式 * member进行消息广播 * 支持线程安全模式:启用独立协程处理所有消息 * 支持副本集:进行消息转发 * 支持消息阻塞开关,可用于协调数据同步 * cloud方案:compose实现 * layer区分云服务 * 按app划分region,进行数据隔离 * channel:(订阅发布模式) * 通过adapt进行多协议订阅 * cloud方案:compose实现 * layer区分云服务 * relation区分订阅发布,职责分离 * proxy:提供内部消息转发 * 可实现跨数据中心的消息发送 * 基于接口分析发送目标 ## binocle业务逻辑管理 * 为所有服务建立关系,绑定业务逻辑 * core定位在中心服务器 * 管理所有服务元数据、状态 * 搜集服务运行信息 * 部署项目:配合tools工具 * agent定位在业务服务,划分app和service2个模式 * app用来对外建立不同的应用体系 * service建立公共的功能模块,支持多租户,提供给app进行使用 * 内部通信通过asteroid实现 * 提供功能模块 * 自动升级模块 * 运维数据收集模块 * 配置管理模块 * 全局计划任务模块 * 代理:数据中心管理,符合asteroid代理接口 * 服务队列 ## ska服务扩展 * 提供接口挂载进行事件触发 * 实现loghub的日志服务对接