跳到主要内容

🏗️ 微服务架构

井云项目采用现代化的微服务架构设计,基于 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

用途: 消息队列,异步任务处理

特点:

  • 可靠的消息传递
  • 支持多种消息模式
  • 管理界面友好

扩展阅读