🏗️ 微服务架构
井云项目采用现代化的微服务架构设计,基于 Go + Kratos 框架构建,提供高可扩展性、高可用性的企业级服务。
架构概览
整体架构
┌─────────────────────────────────────────────────────────────┐
│ 客户端层 │
│ Web App │ Platform │ Tenant │ Agent │ MiniApp │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Gateway (8000) │
│ 统一网关 - 路由、认证、负载均衡 │
└─────────────────────┬───────────────────────────────────────┘
│
┌─────────────┼─────────────┬─────────────┐
▼ ▼ ▼ ▼
┌──────────────┐ ┌────────── ┐ ┌──────────┐ ┌──────────┐
│ Auth │ │ User │ │ Tenant │ │ Agent │
│ (9001) │ │ (9002) │ │ (9003) │ │ (9004) │
└──────────────┘ └──────────┘ └──────────┘ └──────────┘
│ │ │ │
└─────────────┼─────────────┴─────────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ 基础设施层 │
│ PostgreSQL │ Redis │ RabbitMQ │ Consul │
└─────────────────────────────────────────────────────────────┘
后端服务
Gateway - 网关服务
端口: 8000 (HTTP) / 9000 (gRPC)
职责:
- 统一入口:所有外部请求的统一接入点
- 路由转发:根据请求路径转发到对应的后端服务
- 认证鉴权:JWT Token 验证和用户身份认证
- 负载均衡:服务实例的负载均衡和健康检查
- 协议转换:HTTP 和 gRPC 协议的转换
关键特性:
- 支持多种认证方式(JWT、微信登录)
- 请求限流和熔断保护
- 统一的错误处理和日志记录
- API 版本管理
Auth - 认证服务
端口: 9001
职责:
- 用户认证:用户登录、注册、密码管理
- Token 管理:JWT Token 的生成、验证、刷新
- 第三方登录:微信登录、短信验证码登录
- 权限验证:用户角色和权限验证
关键特性:
- 支持多种登录方式
- Token 自动刷新机制
- 登录状态管理(Redis 存储)
- 安全的密码加密存储
User - 用户服务
端口: 9002
职责:
- 用户管理:用户信息管理、用户资料
- 素材管理:用户上传的素材和资源
- 分销系统:分销等级、佣金记录、提现管理
- 点数管理:点数账本、交易记录、消费记录
关键特性:
- 完整的分销系统(多级分销)
- 点数 FIFO 消费策略
- 自动过期处理
- 交易流水追踪
Tenant - 租户服务
端口: 9003
职责:
- 租户管理:租户创建、配置、管理
- 版本管理:版本定义、权限配置
- 租户快照:保存购买时的版本配置
- 菜单管理:平台级和租户级菜单
- 平台集成:Coze、微信第三方平台等 AI 平台集成
关键特性:
- 完整的多租户数据隔离
- 版本权限管理
- 租户快照机制
- 多级菜单系统
Agent - 智能体服务
端口: 9004
职责:
- 智能体管理:链接、工作流集合、工作流、机器人、提示词
- 智能体分类:分类管理、精选分类
- 平台资产同步:从 Coze 等平台同步智能体
- 媒体资源管理:头像、背景图、封面图等
关键特性:
- 支持多种智能体类型
- 灵活的配置系统
- 平台资产集成
- 权限和计费管理
Payment - 支付服务
端口: 9006
职责:
- 订单管理:订单创建、状态管理
- 支付处理:微信支付集成
- 支付回调:处理支付结果回调
- 租户购买:版本购买、租户创建流程
关键特性:
- 支持微信支付 Native 模式
- 自动创建租户
- 租户快照创建
- 事件驱动架构
Integration - 集成服务
端口: 9007
职责:
- 文件上传:阿里云 OSS、腾讯云 COS、AWS S3
- 短信服务:阿里云、腾讯云、华为云、AWS SNS
- 支付集成:支付宝等第三方支付
- 第三方服务:各种第三方 API 集成
关键特性:
- 统一的文件上传接口
- 多短信服务商支持
- 可扩展的集成框架
Cron - 定时任务服务
端口: 9008
职责:
- 点数过期处理:每天凌晨 2 点处理过期点数
- 分销等级检查:每天凌晨 3 点检查用户等级
- 定时任务调度:其他定时任务管理
关键特性:
- 基于时间的任务调度
- 高效的批处理
- 完整的日志记录
前端应用
Web - Web 应用
技术栈: Nuxt
功能:
- SSR/SSG 应用,主要面向用户
- SEO 优化
- 高性能页面加载
Platform - 平台管理应用
技术栈: Vue 3 + Vite
功能:
- 平台级管理后台
- 用户管理、租户管理
- 分销系统、点数系统管理
Tenant - 租户管理应用
技术栈: Vue 3 + Vite
功能:
- 租户级管理后台
- 智能体管理
- 版本和权限管理
Agent - Agent 应用
技术栈: Vue 3 + Vite
功能:
- 智能代理应用
- AI 智能体交互界面
MiniApp - 小程序应用
技术栈: uni-app
功能:
- 跨平台小程序
- 支持 H5、微信小程序等
Website - 官方网站
技术栈: Vue 3 + Vite
功能:
- 官方网站
- 产品介绍和展示
Docs - 文档站点
技术栈: VitePress
功能:
- 技术文档站点
- 开发指南和 API 文档
服务间通信
通信协议
- gRPC: 服务间内部通信,高性能、低延迟
- HTTP: 对外 API 接口,支持 RESTful 风格
- RabbitMQ: 异步消息传递,事件驱动
服务发现
使用 Consul 进行服务注册和发现:
- 服务启动时自动注册到 Consul
- Gateway 通过 Consul 查找服务实例
- 支持健康检查和故障转移
配置管理
使用 Consul 配置中心:
- 统一配置管理
- 配置热更新
- 环境隔离
数据存储
PostgreSQL
用途: 主数据库,存储业务数据
特点:
- 强一致性
- 支持复杂查询
- 事务支持
Redis
用途: 缓存和会话存储
特点:
- 高性能
- 支持多种数据结构
- 持久化支持
RabbitMQ
用途: 消息队列,异步任务处理
特点:
- 可靠的消息传递
- 支持多种消息模式
- 管理界面友好