跳到主要内容

井云服务中心系统架构

井云服务中心后端采用微服务架构设计,基于 Go 1.25.4 和 Kratos v2 框架构建。本文档介绍系统的整体架构设计、技术选型和核心组件。

🏗️ 系统架构图

🎯 架构特性

微服务设计原则

  • 业务边界清晰: 按业务领域垂直拆分
  • 服务自治: 每个服务独立部署、独立扩展
  • 数据隔离: 服务间数据库完全隔离
  • 接口标准化: 统一使用 gRPC/HTTP 协议

核心服务说明

Gateway Service (网关服务)

  • 职责: 统一入口、路由转发、认证鉴权
  • 端口: HTTP 8000, gRPC 9000
  • 特性: JWT认证、限流熔断、错误码区分(401/402)

Auth Service (认证服务)

  • 职责: 用户认证、授权、Token管理、微信登录
  • 端口: gRPC 9001
  • 特性: 多种登录方式、Token刷新、租户Token交换

User Service (用户服务)

  • 职责: 用户管理、分销系统、点数管理、素材管理
  • 端口: gRPC 9002
  • 特性: 多级分销、FIFO点数消费、交易记录

Tenant Service (租户服务)

  • 职责: 租户管理、版本管理、权限管理、菜单管理
  • 端口: gRPC 9003
  • 特性: 租户快照、版本权限、平台集成

Agent Service (智能体服务)

  • 职责: 智能体管理、分类管理、平台资产同步
  • 端口: gRPC 9004
  • 特性: 多AI平台集成、智能体配置

Payment Service (支付服务)

  • 职责: 订单管理、支付处理、微信支付集成
  • 端口: gRPC 9006
  • 特性: 订单状态管理、支付回调、租户创建

Integration Service (集成服务)

  • 职责: 文件上传、短信服务、第三方集成
  • 端口: gRPC 9007
  • 特性: OSS直传、多短信平台、回调处理

Cron Service (定时任务服务)

  • 职责: 定时任务调度、过期处理、数据统计
  • 端口: gRPC 9008
  • 特性: 点数过期、分销等级检查、数据清理

🔧 技术栈

核心技术

  • 语言: Go 1.25.4
  • 框架: Kratos v2 (微服务框架)
  • ORM: Ent v0.14.5 (类型安全的ORM)
  • 协议: Protocol Buffers (gRPC/HTTP)
  • 依赖注入: Wire v0.7.0 (编译时依赖注入)

基础设施

  • 数据库: PostgreSQL 17.5 (主数据库)
  • 缓存: Redis (缓存/会话存储)
  • 消息队列: RabbitMQ 3.0 (异步通信)
  • 服务发现: Consul (注册/配置中心)

第三方集成

  • 微信平台: 登录、支付、第三方平台
  • 阿里云: OSS存储、短信服务
  • Coze平台: AI智能体集成
  • 其他: 腾讯云、华为云、AWS SNS

🌐 服务通信架构

同步通信

  • gRPC: 服务间实时调用
  • HTTP: 对外API接口
  • Consul: 服务注册发现

异步通信

  • RabbitMQ: 事件驱动架构
  • 消息类型: 订单支付、分销佣金、系统通知
  • 消息路由: 基于routing key的路由

服务发现

  • Consul Registry: 服务自动注册
  • 健康检查: 定期健康状态检查
  • 负载均衡: 支持多种负载均衡策略

🏢 多租户架构

租户隔离

  • 数据隔离: 基于 tenant_id 的强隔离
  • 权限隔离: 租户间权限完全独立
  • 配置隔离: 每个租户独立配置

版本管理

  • 版本系统: 支持多版本管理
  • 权限控制: 基于版本的权限分配
  • 租户快照: 保存购买时的版本配置

平台集成

  • 支持平台: Coze、豆包、通义千问、混元等
  • 统一接口: 标准化的平台集成API
  • 配置管理: 平台配置的集中管理

🔐 安全架构

认证机制

  • JWT Token: 无状态Token认证
  • Token类型: 用户Token、内部服务Token
  • 错误码: 401(过期)、402(无效)

授权控制

  • RBAC: 基于角色的访问控制
  • 权限粒度: 接口级、数据级权限
  • 租户权限: 租户级别的数据访问控制

数据安全

  • 传输加密: HTTPS/TLS加密传输
  • 存储加密: 敏感数据加密存储
  • 日志脱敏: 敏感信息脱敏处理

📊 监控体系

指标监控

  • Prometheus: 指标收集存储
  • Grafana: 指标可视化
  • 关键指标: QPS、错误率、响应时间

日志监控

  • 结构化日志: JSON格式日志
  • 日志级别: DEBUG/INFO/WARN/ERROR
  • 日志聚合: 集中式日志收集

链路追踪

  • OpenTelemetry: 分布式追踪标准
  • Trace ID: 跨服务请求追踪
  • Span: 服务内操作追踪

🚀 部署架构

容器化

  • Docker: 服务容器化
  • Docker Compose: 本地开发环境
  • Kubernetes: 生产环境编排

环境管理

  • 本地环境: Docker Compose部署
  • 测试环境: 自动化测试环境
  • 生产环境: Kubernetes集群

CI/CD

  • 自动化构建: GitLab CI/CD 或 GitHub Actions
  • 自动化测试: 单元/集成/端到端测试
  • 自动化部署: 蓝绿部署、滚动更新

🔄 数据流设计

同步数据流

  1. 客户端请求 → Gateway
  2. 认证中间件 → Token验证
  3. 路由转发 → 目标服务
  4. 业务处理 → 数据库操作
  5. 响应返回 → 客户端

异步数据流

  1. 事件发布 → RabbitMQ
  2. 消息路由 → 目标消费者
  3. 业务处理 → 数据更新
  4. 事件确认 → 消息确认

🎛️ 配置架构

配置层次

  1. 默认配置: 代码中的默认值
  2. 环境配置: 环境变量配置
  3. Consul 配置: 动态配置中心
  4. 运行时配置: 运行时动态调整

配置管理

  • 版本控制: 配置变更的版本管理
  • 配置验证: 配置的有效性验证
  • 配置热更新: 不重启服务的配置更新

📈 性能优化

数据库优化

  • 连接池: 数据库连接池管理
  • 索引策略: 查询性能索引
  • 读写分离: 主从数据库分离

缓存策略

  • 多级缓存: 应用缓存、分布式缓存
  • 缓存预热: 系统启动缓存预热
  • 缓存更新: 缓存一致性更新

服务优化

  • 连接复用: gRPC/HTTP连接复用
  • 并发控制: 合理并发控制
  • 资源管理: 内存/CPU资源管理

🚀 架构演进规划

短期目标(3-6个月)

  • 完善现有服务功能
  • 优化系统性能
  • 增强监控和告警
  • 完善文档体系

中期目标(6-12个月)

  • 引入服务网格(Istio)
  • 实现自动化运维
  • 增强安全防护
  • 支持更多 AI 平台

长期目标(1-2年)

  • 支持多云部署
  • 实现 AI 能力增强
  • 支持国际化
  • 构建完整的生态系统

🔗 相关文档