租户系统
租户系统是井云平台的核心基础系统,负责多租户架构下的租户管理、版本管理、权限管理和平台集成等功能。
🎯 系统概述
核心功能
- 租户管理: 租户的创建、查询、更新、删除和列表功能
- 版本管理: 支持多版本系统,包括版本创建、权限分配、快照管理
- 权限管理: 基于版本的权限控制系统,支持权限的层级管理
- 平台集成: 支持与多个第三方平台的集成配置
- 租户配置: 提供租户级别的配置管理
系统特性
- 多租户隔离: 完整的租户数据隔离机制
- 版本快照: 保存租户购买时的版本配置,确保权限稳定性
- 权限体系: 灵活的权限管理和控制机制
- 平台集成: 支持多个AI平台的统一集成管理
🏗️ 架构设计
系统架构
┌─────────────────────────────────────────┐
│ Tenant Service │
│ (端口: 9003) │
├─────────────────────────────────────────┤
│ ┌─────────────┬─────────────┬─────────┐ │
│ │ Service │ Biz │ Data │ │
│ │ Layer │ Layer │ Layer │ │
│ └─────────────┴─────────────┴─────────┘ │
├─────────────────────────────────────────┤
│ ┌─────────────┬─────────────┬── ───────┐ │
│ │ PostgreSQL │ Redis │ Consul │ │
│ │ 数据库 │ 缓存 │ 配置中心 │ │
│ └─────────────┴─────────────┴─────────┘ │
└─────────────────────────────────────────┘
技术栈
- 框架: Go + Kratos v2
- 数据库: PostgreSQL + Ent ORM
- 缓存: Redis
- 配置中心: Consul
- 协议: gRPC/HTTP
📊 数据模型
核心实体
- Tenant: 租户主体模型
- Version: 版本管理模型
- VersionPermission: 版本权限模型
- TenantSnapshot: 租户快照模型
- TenantPlatformIntegration: 租户平台集成模型
关系设计
Tenant (1) ─── (N) TenantSnapshot
Version (1) ─── (N) VersionPermission
Version (1) ─── (N) TenantSnapshot
Tenant (1) ─── (N) TenantPlatformIntegration
🔧 核心功能
租户管理
- 创建租户: 支持自动创建和手动创建
- 查询租户: 根据ID、域名、状态等查询
- 更新租户: 租户信息更新和状态管理
- 删除租户: 软删除机制,支持数据恢复
- 租户列表: 分页查询租户列表
版本管理
- 版本创建: 创建新的版本定义
- 版本配置: 版本价格、权限、限制等配置
- 权限分配: 版本权限的分配和管理
- 版本快照: 保存版本配置的历史快照
权限管理
- 权限定义: 权限的定义和分类
- 权限分配: 将权限分配给版本
- 权限验证: 验证用户的权限访问
- 权限继承: 支持权限的继承机制
平台集成
- 平台配置: 第三方平台的配置管理
- API密钥: 平台API密钥的安全管理
- 能力配置: 平台能力的开关配置
- 集成状态: 平台集成状态监控
🚀 API接口
租户管理接口
CreateTenant: 创建租户GetTenant: 获取租户信息UpdateTenant: 更新租户信息UpdateTenantWithExpiry: 更新租户及过期时间ListTenants: 列出租户
版本管理接口
CreateVersion: 创建版本GetVersion: 获取版本信息UpdateVersion: 更新版本信息ListVersions: 列出版本DeleteVersion: 删除版本
权限管理接口
CreateVersionPermission: 创建权限GetVersionPermission: 获取权限信息UpdateVersionPermission: 更新权限信息ListVersionPermissions: 列出权限DeleteVersionPermission: 删除权限
租户快照接口
CreateTenantSnapshot: 创建租户快照GetTenantSnapshot: 获取租户快照ListTenantSnapshots: 列出租户快照
平台集成接口
CreateTenantPlatformIntegration: 创建平台集成GetTenantPlatformIntegration: 获取平台集成UpdateTenantPlatformIntegration: 更新平台集成DeleteTenantPlatformIntegration: 删除平台集成ListTenantPlatformIntegrations: 列出平台集成
🔄 租户快照机制
快照创建
1. 用户购买版本
2. 支付成功触发快照创建
3. 保存版本的所有配置信息
4. 设置快照的生效时间范围
5. 激活快照作为当前配置
快照内容
- 版本信息: 版本的基本信息和价格
- 权限配置: 版本的权限列表和配置
- 限制配置: 版本的使用限制和配额
- 时间信息: 生效时间和失效时间
- 状态管理: 快照的激活状态
🔗 平台集成
支持的平台
- Coze: AI智能体平台
- 豆包: 字节跳动AI平台
- 通义千问: 阿里云AI平台
- 千问: 阿里云千问大模型
- 混元: 腾讯混元大模型
- ChatGLM: 智谱AI大模型
- SiliconFlow: SiliconFlow平台
集成配置
- API密钥: 平台API密钥管理
- 端点配置: 平台API端点配置
- 功能开关: 平台功能启用/禁用
- 额外配置: 平台特定的扩展配置
📈 性能优化
缓存策略
- 租户缓存: 热点租户信息缓存
- 权限缓存: 租户权限信息缓存
- 配置缓存: 平台配置信息缓存
- 快照缓存: 租户快照信息缓存
数据库优化
- 索引优化: 租户ID、版本ID等索引
- 分页查询: 租户列表分页优化
- 关联查询: 减少N+1查询问题
🔒 安全机制
数据隔离
- 租户隔离: 严格的租 户数据隔离
- 权限验证: 接口级别的权限验证
- 数据过滤: 数据访问权限控制
配置安全
- 密钥加密: API密钥加密存储
- 访问控制: 配置访问权限控制
- 审计日志: 配置变更审计日志
🛡️ 异常处理
租户异常
- 租户不存在: 租户验证和错误处理
- 权限不足: 权限验证失败处理
- 配置错误: 配置验证和错误提示
平台异常
- 平台不可用: 平台连接异常处理
- API限制: 平台API限流处理
- 配置错误: 平台配置错误处理