🏗️ Ingtube Common Backend Architecture
架构模式: 分层微服务 Monorepo (置信度: 0.92)
技术栈: Go 1.22 | Gin HTTP | gRPC | MySQL | MongoDB | Redis | Elasticsearch | RocketMQ | 阿里云 OSS
规模: 43 微服务 | 46 业务包 | 24 基础库
🌐 API 网关层 (Layer: Gateway)
对外暴露 RESTful API,处理鉴权、路由、限流
📱 app_api_server
server/app_api_server
核心职责: C端 APP 主 API 网关,处理所有移动端请求
关键交互:
- 调用: passport_rpc, order, elastic_rpc, shop-rpc
- 被用于: 移动端 APP
复杂度: ⚠️ Critical (393 文件) 潜在风险: 📈 高耦合,建议拆分领域边界
🎯 sx_sponsor_api_server
server/sx_sponsor_api_server
核心职责: B端商家/赞助商 API 网关
关键交互:
- 调用: sponsor_credit, commission-rpc, shop-rpc
- 被用于: 商家后台管理系统
复杂度: ⚠️ High (250 文件) 潜在风险: 稳定,领域边界清晰
🔧 admin_editor_refactor_server
server/admin_editor_refactor_server
核心职责: 运营后台编辑器 API
关键交互:
- 调用: 多个 RPC 服务
- 被用于: 内部运营团队
复杂度: High (288 文件)
⚡ gRPC 服务层 (Layer: Business RPC)
核心业务逻辑,服务间通过 gRPC + Protobuf 通信
🛒 order
server/order
核心职责: 订单核心服务
关键交互:
- 调用: pay_server, ticket_rpc, settlement
- 被用于: app_api, sponsor_api
复杂度: Critical 状态变更: ✍️ 写库操作频繁
💰 pay_server
server/pay_server
核心职责: 支付网关 (微信/支付宝)
关键交互:
- 调用: 外部支付 API
- 被用于: order, sponsor_credit
复杂度: Critical 潜在风险: 🔐 敏感资金操作
🔑 passport_rpc_server
server/passport_rpc_server
核心职责: 用户认证与鉴权
关键交互:
- 调用: Redis (Session), MySQL
- 被用于: 所有 API 网关
复杂度: High 安全等级: 🔒 核心安全组件
🏪 shop-rpc
server/shop-rpc
核心职责: 店铺管理服务
关键交互:
- 调用: elastic_rpc, production
- 被用于: sponsor_api, app_api
复杂度: Medium
🔍 elastic_rpc_server
server/elastic_rpc_server
核心职责: Elasticsearch 搜索代理
关键交互:
- 调用: Elasticsearch 集群
- 被用于: app_api, shop-rpc
复杂度: Medium
💎 commission-rpc
server/commission-rpc
核心职责: 佣金计算引擎
关键交互:
- 调用: settlement, order
- 被用于: sponsor_api
复杂度: High 业务核心: 💵 营收关键路径
🎫 ticket_rpc_server
server/ticket_rpc_server
核心职责: 工单/凭证管理
关键交互:
- 调用: message_server
- 被用于: order, app_api
复杂度: Medium
📊 sx_settlement_rpc_server
server/sx_settlement_rpc_server
核心职责: 结算清算服务
关键交互:
- 调用: pay_server, transaction_rpc
- 被用于: commission, order
复杂度: Critical 潜在风险: 🏦 财务核心
📨 消息队列层 (Layer: Async Processing)
RocketMQ 驱动的异步任务与事件处理
📤 mq-proxy-server
server/mq-proxy-server
核心职责: MQ 消息路由代理
通信模式: 发布/订阅 复杂度: Medium
🔄 canal_consumer
server/canal_consumer
核心职责: MySQL Binlog 同步
数据流: MySQL → Canal → ES/MQ 复杂度: High 潜在风险: ⚠️ 数据一致性关键
⏰ regular_task
server/regular_task
核心职责: 定时任务调度
执行模式: Cron 定时触发 复杂度: Low
🗄️ 基础设施层 (Layer: Infrastructure)
数据存储、缓存、外部服务
🐬 MySQL
主数据存储 GORM + 分库分表
⚡ Redis
缓存 + 分布式锁 Session 存储
🍃 MongoDB
文档存储 日志/审计数据
🔎 Elasticsearch
全文搜索 商品/内容索引
🚀 RocketMQ
消息队列 异步解耦
☁️ 阿里云 OSS
对象存储 图片/视频/文件
📦 公共包层 (Layer: Shared Packages)
可复用业务逻辑与基础工具
pkg/ (46 业务包)
• authpkg - 认证授权
• shoppkg - 店铺业务
• pkgorder - 订单公共逻辑
• rebate - 返利计算
• sponsor - 赞助商业务
• oss - 存储封装
• message - 消息处理
• ... 更多领域包
library/ (24 基础库)
• dbhelper - 数据库助手
• cache - 缓存封装
• grpc - gRPC 工具
• logger - 日志封装
• validator - 校验器
• lock - 分布式锁
• limiter - 限流器
• ... 更多工具库
protos/ (46 Protobuf 定义)
• orderPb - 订单协议
• payPb - 支付协议
• shopPb - 店铺协议
• passportPb - 认证协议
• eventPb - 事件协议
• ... 更多服务定义
gRPC 服务间通信契约
🧠 AI 架构洞察
优势
✅ 清晰的分层架构设计 ✅ 统一的 gRPC 服务通信 ✅ 完善的基础设施抽象
潜在风险
⚠️ app_api_server 模块过大 (393 文件),建议按领域拆分
⚠️ 部分服务存在循环依赖风险
⚠️ 缺少统一的服务注册发现机制
技术债务
📈 canal_consumer 数据同步复杂度高
📈 支付模块需要额外的幂等性保障