跳到主要内容

租户系统

租户系统是井云平台的核心基础系统,负责多租户架构下的租户管理、版本管理、权限管理和平台集成等功能。

🎯 系统概述

核心功能

  • 租户管理: 租户的创建、查询、更新、删除和列表功能
  • 版本管理: 支持多版本系统,包括版本创建、权限分配、快照管理
  • 权限管理: 基于版本的权限控制系统,支持权限的层级管理
  • 平台集成: 支持与多个第三方平台的集成配置
  • 租户配置: 提供租户级别的配置管理

系统特性

  • 多租户隔离: 完整的租户数据隔离机制
  • 版本快照: 保存租户购买时的版本配置,确保权限稳定性
  • 权限体系: 灵活的权限管理和控制机制
  • 平台集成: 支持多个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限流处理
  • 配置错误: 平台配置错误处理

📚 相关文档