Files
Claude AIandClaude 9f9cbfbc80 feat: Complete MVP Sprint 01 project setup with comprehensive architecture
## 🏗️ Architecture & Design
- Add ADR collection (15 Architecture Decision Records)
- Comprehensive system design documentation
- Implementation roadmap and project planning

## 📋 Requirements & Documentation
- Detailed functional requirements
- API specifications (OpenAPI & AsyncAPI)
- Postman collections and optimization reports

## 🗄️ Database & Configuration
- Database migration scripts (CDC, core schema)
- Resilience4j configuration for resilience patterns
- Alert manager and Prometheus monitoring rules

## 🎯 Project Templates
- Admin frontend template (Arco Pro + Vue 3)
- Big screen data visualization template (ECharts)
- Enterprise backend template (Jeecg Boot + Spring Boot)

## 🧪 Testing & Quality
- K6 performance testing scenarios
- Load testing benchmark scripts
- Quality assurance framework setup

## 📦 Infrastructure & Deployment
- Complete infrastructure configurations
- Deployment strategies and CI/CD pipelines
- Monitoring and observability setup

This commit establishes the complete foundation for the MVP Sprint 01
development cycle with all necessary architectural decisions, templates,
and documentation ready for team collaboration.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 23:43:18 +08:00
..

系统设计与架构

概述

基于详细设计文档和开源技术栈,制定光明科学城科技成果转化平台的系统架构设计和技术实施方案。

架构设计

1. 总体架构

采用 云原生微服务架构 + 事件驱动 + DDD 领域驱动的设计模式:

graph TB
    subgraph "前端层"
        Web[Vue3 Web前端]
        Mini[微信小程序]
        Admin[管理后台]
        BigScreen[数据大屏]
    end
    
    subgraph "网关层"
        Gateway[Spring Cloud Gateway]
        Auth[认证授权]
        Limit[限流熔断]
    end
    
    subgraph "服务层"
        UserSvc[用户服务]
        AchievementSvc[成果服务]
        DemandSvc[需求服务]
        BrokerSvc[经纪服务]
        ActivitySvc[活动服务]
        AISvc[AI服务中心]
        NotificationSvc[通知服务]
        FileSvc[文件服务]
    end
    
    subgraph "数据层"
        DM8[(达梦DM8)]
        Redis[(Redis集群)]
        OpenSearch[(OpenSearch)]
        MinIO[(MinIO对象存储)]
        Milvus[(Milvus向量库)]
    end
    
    subgraph "消息层"
        RabbitMQ[RabbitMQ]
        Kafka[Kafka]
    end
    
    Web --> Gateway
    Mini --> Gateway
    Admin --> Gateway
    BigScreen --> Gateway
    
    Gateway --> UserSvc
    Gateway --> AchievementSvc
    Gateway --> DemandSvc
    Gateway --> BrokerSvc
    Gateway --> ActivitySvc
    Gateway --> AISvc
    Gateway --> NotificationSvc
    Gateway --> FileSvc
    
    UserSvc --> DM8
    AchievementSvc --> DM8
    DemandSvc --> DM8
    BrokerSvc --> DM8
    ActivitySvc --> DM8
    
    AISvc --> Milvus
    AchievementSvc --> OpenSearch
    DemandSvc --> OpenSearch
    
    FileSvc --> MinIO
    
    UserSvc --> Redis
    AchievementSvc --> Redis
    DemandSvc --> Redis
    
    UserSvc --> RabbitMQ
    AchievementSvc --> RabbitMQ
    DemandSvc --> RabbitMQ
    BrokerSvc --> RabbitMQ
    
    AISvc --> Kafka
    NotificationSvc --> Kafka

2. 技术栈选型

前端技术栈

# Web前端
Framework: Vue 3.4+ with Composition API
Language: TypeScript 5.0+
UI Library: Ant Design Vue 4.0+ / Element Plus 2.4+
Build Tool: Vite 5.0+
State Management: Pinia 2.0+
Router: Vue Router 4.0+
HTTP Client: Axios 1.6+
Charts: Apache ECharts 5.4+
Editor: Monaco Editor / Tiptap
File Upload: tus-js-client (断点续传)

# 小程序
Framework: Taro 3.6+ (React/Vue语法)
UI Library: NutUI / Vant

后端技术栈

# Java服务
Framework: Spring Boot 3.2+ / Spring Cloud 2023.0+
Language: Java 17+ (LTS)
Gateway: Spring Cloud Gateway 4.0+
Security: Spring Security 6.0+ with JWT
Database: 达梦 DM8 + MyBatis-Plus 3.5+
Cache: Redis 7.0+ Cluster
Search: OpenSearch 2.11+ (信创兼容)
Vector DB: Milvus 2.3+ / ChromaDB
Object Storage: MinIO Cluster
Message Queue: RabbitMQ 3.12+ / Kafka 3.6+
Workflow: Flowable 7.0+
Config Center: Nacos 2.3+

AI/数据技术栈

# AI服务
Framework: FastAPI 0.104+ / Flask 2.3+
Language: Python 3.11+
ML Library: scikit-learn 1.3+ / LightGBM 4.0+
Vector: sentence-transformers / Hugging Face
NLP: HanLP 1.8+ / jieba (中文分词)
Feature Store: Feast 0.35+

基础设施

# 容器化
Container: Docker 24.0+
Orchestration: Kubernetes 1.28+
Service Mesh: Istio 1.19+
Gateway: Ingress NGINX / Istio Gateway

# 可观测性
Metrics: Prometheus 2.47+ / Grafana 10.0+
Logging: Loki 2.9+ / ELK Stack
Tracing: Jaeger 1.50+ / Apache SkyWalking 9.6+
APM: OpenTelemetry 1.0+

# CI/CD
Git: GitLab 16.0+ / GitHub Enterprise
CI/CD: GitLab CI / Jenkins 2.420+
Registry: Harbor 2.9+
Deployment: Argo CD 2.8+ / Helm 3.13+

3. 领域模型设计

基于 DDD (领域驱动设计) 划分限界上下文:

graph TB
    subgraph "用户域 (User Context)"
        User[用户聚合]
        Organization[机构聚合]
        Expert[专家聚合]
        Permission[权限聚合]
    end
    
    subgraph "成果域 (Achievement Context)"
        Achievement[成果聚合]
        Patent[专利聚合]
        Paper[论文聚合]
        Software[软著聚合]
    end
    
    subgraph "需求域 (Demand Context)"
        Demand[需求聚合]
        Requirement[需求聚合]
        Match[匹配聚合]
        Recommendation[推荐聚合]
    end
    
    subgraph "经纪域 (Broker Context)"
        BrokerTask[经纪任务聚合]
        Workflow[工作流聚合]
        Customer[客户聚合]
        Contract[合同聚合]
    end
    
    subgraph "活动域 (Activity Context)"
        Event[活动聚合]
        Registration[报名聚合]
        Content[内容聚合]
        News[资讯聚合]
    end
    
    User --> Achievement : 发布
    User --> Demand : 创建
    Achievement --> Match : 参与匹配
    Demand --> Match : 参与匹配
    Match --> BrokerTask : 触发任务
    User --> Event : 参与

4. 数据库设计

4.1 分库分表策略

-- 用户库 (user_db)
- t_user (按 tenant_id 分表)
- t_organization  
- t_expert
- t_permission

-- 业务库 (business_db)  
- t_achievement (按 created_date 分表)
- t_demand (按 created_date 分表)
- t_match_result (按 created_date 分表)

-- 流程库 (workflow_db)
- t_broker_task
- t_workflow_instance
- t_workflow_history

-- 内容库 (content_db)
- t_activity
- t_registration
- t_article
- t_file_metadata

4.2 核心表结构

-- 用户表
CREATE TABLE t_user (
    id VARCHAR(32) PRIMARY KEY COMMENT '用户ID(ULID)',
    tenant_id VARCHAR(32) NOT NULL COMMENT '租户ID',
    username VARCHAR(50) UNIQUE NOT NULL COMMENT '用户名',
    email VARCHAR(100) COMMENT '邮箱',
    phone VARCHAR(20) COMMENT '手机号',
    user_type ENUM('INDIVIDUAL','ORGANIZATION','EXPERT') COMMENT '用户类型',
    status ENUM('ACTIVE','INACTIVE','PENDING','BLOCKED') COMMENT '状态',
    profile JSON COMMENT '用户档案(JSON)',
    created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_tenant_type (tenant_id, user_type),
    INDEX idx_status_created (status, created_time)
);

-- 成果表  
CREATE TABLE t_achievement (
    id VARCHAR(32) PRIMARY KEY COMMENT '成果ID(ULID)',
    tenant_id VARCHAR(32) NOT NULL COMMENT '租户ID',
    title VARCHAR(200) NOT NULL COMMENT '成果标题',
    summary TEXT COMMENT '成果摘要',
    description LONGTEXT COMMENT '详细描述',
    achievement_type ENUM('PATENT','PAPER','SOFTWARE','TECH_SECRET') COMMENT '成果类型',
    tech_field VARCHAR(100) COMMENT '技术领域',
    maturity_level ENUM('LAB','PROTOTYPE','PRODUCT','MARKET') COMMENT '成熟度',
    transfer_type SET('LICENSE','TRANSFER','COOPERATION','INVESTMENT') COMMENT '转化方式',
    owner_id VARCHAR(32) NOT NULL COMMENT '所有者ID',
    status ENUM('DRAFT','PENDING','APPROVED','REJECTED','PUBLISHED') COMMENT '状态',
    tags JSON COMMENT '标签数组',
    metadata JSON COMMENT '扩展元数据',
    created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_tenant_status (tenant_id, status),
    INDEX idx_owner_type (owner_id, achievement_type),
    INDEX idx_field_maturity (tech_field, maturity_level),
    FULLTEXT idx_title_summary (title, summary)
) PARTITION BY RANGE (YEAR(created_time)) (
    PARTITION p2024 VALUES LESS THAN (2025),
    PARTITION p2025 VALUES LESS THAN (2026),
    PARTITION p2026 VALUES LESS THAN (2027)
);

-- 需求表
CREATE TABLE t_demand (
    id VARCHAR(32) PRIMARY KEY COMMENT '需求ID(ULID)',
    tenant_id VARCHAR(32) NOT NULL COMMENT '租户ID', 
    title VARCHAR(200) NOT NULL COMMENT '需求标题',
    description LONGTEXT COMMENT '需求描述',
    tech_field VARCHAR(100) COMMENT '技术领域',
    industry VARCHAR(100) COMMENT '所属行业',
    cooperation_type ENUM('PURCHASE','LICENSE','JOINT_DEVELOP','INVESTMENT') COMMENT '合作方式',
    budget_range ENUM('BELOW_100W','100W_500W','500W_1000W','ABOVE_1000W') COMMENT '预算范围',
    timeline VARCHAR(50) COMMENT '时间要求',
    requester_id VARCHAR(32) NOT NULL COMMENT '需求方ID',
    status ENUM('DRAFT','PUBLISHED','MATCHING','MATCHED','NEGOTIATING','COMPLETED','CANCELLED') COMMENT '状态',
    priority TINYINT DEFAULT 5 COMMENT '优先级(1-9)',
    tags JSON COMMENT '标签数组',
    created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    deadline_time TIMESTAMP COMMENT '截止时间',
    INDEX idx_tenant_status (tenant_id, status),
    INDEX idx_requester_priority (requester_id, priority),
    INDEX idx_field_industry (tech_field, industry),
    FULLTEXT idx_title_desc (title, description)
) PARTITION BY RANGE (YEAR(created_time)) (
    PARTITION p2024 VALUES LESS THAN (2025),
    PARTITION p2025 VALUES LESS THAN (2026), 
    PARTITION p2026 VALUES LESS THAN (2027)
);

-- 匹配结果表
CREATE TABLE t_match_result (
    id VARCHAR(32) PRIMARY KEY COMMENT '匹配ID(ULID)',
    demand_id VARCHAR(32) NOT NULL COMMENT '需求ID',
    achievement_id VARCHAR(32) NOT NULL COMMENT '成果ID', 
    match_score DECIMAL(4,3) COMMENT '匹配度(0-1)',
    match_reasons JSON COMMENT '匹配原因数组',
    algorithm_version VARCHAR(20) COMMENT '算法版本',
    tenant_id VARCHAR(32) NOT NULL COMMENT '租户ID',
    status ENUM('PENDING','CONFIRMED','REJECTED','EXPIRED') COMMENT '状态',
    created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    UNIQUE KEY uk_demand_achievement (demand_id, achievement_id),
    INDEX idx_demand_score (demand_id, match_score DESC),
    INDEX idx_achievement_score (achievement_id, match_score DESC),
    INDEX idx_tenant_status (tenant_id, status),
    INDEX idx_created_time (created_time)
) PARTITION BY RANGE (YEAR(created_time)) (
    PARTITION p2024 VALUES LESS THAN (2025),
    PARTITION p2025 VALUES LESS THAN (2026),
    PARTITION p2026 VALUES LESS THAN (2027)
);

5. API设计规范

5.1 RESTful API设计

# 用户管理 API
GET    /api/v1/users                    # 查询用户列表
POST   /api/v1/users                    # 创建用户
GET    /api/v1/users/{id}               # 获取用户详情
PUT    /api/v1/users/{id}               # 更新用户信息
DELETE /api/v1/users/{id}               # 删除用户
POST   /api/v1/users/{id}/activate      # 激活用户
POST   /api/v1/users/{id}/deactivate    # 停用用户

# 成果管理 API
GET    /api/v1/achievements             # 查询成果列表
POST   /api/v1/achievements             # 发布成果
GET    /api/v1/achievements/{id}        # 获取成果详情
PUT    /api/v1/achievements/{id}        # 更新成果
DELETE /api/v1/achievements/{id}        # 删除成果
POST   /api/v1/achievements/search      # 成果搜索
GET    /api/v1/achievements/categories  # 获取分类字典

# 需求管理 API  
GET    /api/v1/demands                  # 查询需求列表
POST   /api/v1/demands                  # 发布需求
GET    /api/v1/demands/{id}             # 获取需求详情
PUT    /api/v1/demands/{id}             # 更新需求
DELETE /api/v1/demands/{id}             # 删除需求
POST   /api/v1/demands/{id}/match       # 触发匹配
GET    /api/v1/demands/{id}/matches     # 获取匹配结果

# AI匹配 API
POST   /api/v1/ai/match                 # 智能匹配
POST   /api/v1/ai/recommend             # 个性化推荐
POST   /api/v1/ai/vectorize             # 文本向量化
GET    /api/v1/ai/similar/{id}          # 相似成果查询

5.2 GraphQL Schema设计

# 用户类型定义
type User {
  id: ID!
  username: String!
  email: String
  phone: String
  userType: UserType!
  status: UserStatus!
  profile: UserProfile
  organization: Organization
  createdTime: DateTime!
  updatedTime: DateTime!
}

type UserProfile {
  avatar: String
  realName: String
  title: String
  industry: String
  expertise: [String!]
  introduction: String
}

# 成果类型定义
type Achievement {
  id: ID!
  title: String!
  summary: String
  description: String
  achievementType: AchievementType!
  techField: String
  maturityLevel: MaturityLevel!
  transferTypes: [TransferType!]!
  owner: User!
  status: AchievementStatus!
  tags: [String!]
  attachments: [Attachment!]
  viewCount: Int!
  favoriteCount: Int!
  createdTime: DateTime!
  updatedTime: DateTime!
}

# 查询定义
type Query {
  # 用户查询
  user(id: ID!): User
  users(filter: UserFilter, pagination: Pagination): UserConnection!
  
  # 成果查询  
  achievement(id: ID!): Achievement
  achievements(filter: AchievementFilter, pagination: Pagination): AchievementConnection!
  searchAchievements(query: String!, filter: SearchFilter): [Achievement!]!
  
  # 需求查询
  demand(id: ID!): Demand  
  demands(filter: DemandFilter, pagination: Pagination): DemandConnection!
  
  # 匹配查询
  matchResults(demandId: ID!): [MatchResult!]!
  recommendations(userId: ID!, limit: Int = 10): [Achievement!]!
}

# 变更定义
type Mutation {
  # 用户管理
  createUser(input: CreateUserInput!): User!
  updateUser(id: ID!, input: UpdateUserInput!): User!
  activateUser(id: ID!): User!
  
  # 成果管理
  createAchievement(input: CreateAchievementInput!): Achievement!
  updateAchievement(id: ID!, input: UpdateAchievementInput!): Achievement!
  publishAchievement(id: ID!): Achievement!
  
  # 需求管理
  createDemand(input: CreateDemandInput!): Demand!
  updateDemand(id: ID!, input: UpdateDemandInput!): Demand!
  triggerMatch(demandId: ID!): [MatchResult!]!
}

# 订阅定义  
type Subscription {
  # 匹配结果推送
  matchResultUpdated(demandId: ID!): MatchResult!
  
  # 消息通知
  notificationReceived(userId: ID!): Notification!
  
  # 系统状态
  systemStatusChanged: SystemStatus!
}

6. 消息设计

6.1 事件驱动架构

# 领域事件定义
Events:
  UserRegistered:          # 用户注册事件
    payload: { userId, userType, tenantId, timestamp }
    routing: user.registered
    
  AchievementPublished:    # 成果发布事件  
    payload: { achievementId, ownerId, techField, timestamp }
    routing: achievement.published
    
  DemandCreated:          # 需求创建事件
    payload: { demandId, requesterId, techField, timestamp }
    routing: demand.created
    
  MatchFound:             # 匹配发现事件
    payload: { matchId, demandId, achievementId, score, timestamp }
    routing: match.found
    
  TaskAssigned:           # 任务分配事件
    payload: { taskId, brokerId, taskType, priority, timestamp }
    routing: task.assigned

# 命令定义
Commands:
  TriggerMatch:           # 触发匹配命令
    payload: { demandId, algorithm, parameters }
    routing: ai.match.trigger
    
  SendNotification:       # 发送通知命令
    payload: { userId, type, title, content, channels }
    routing: notification.send
    
  UpdateIndex:            # 更新索引命令
    payload: { entityType, entityId, operation, data }
    routing: search.index.update

6.2 AsyncAPI 规格设计

asyncapi: 2.6.0
info:
  title: 光明科学城科技成果转化平台 - 异步API
  version: 1.0.0
  description: 基于事件驱动的异步消息接口定义

servers:
  production:
    url: amqps://mq.platform.gmsc.gov.cn:5671
    protocol: amqp
    protocolVersion: '0-9-1'
    description: 生产环境 RabbitMQ
    security:
      - rabbitmq-auth: []

channels:
  domain.events:
    description: 领域事件通道
    bindings:
      amqp:
        is: routingKey
        exchange:
          name: gmkx.domain
          type: topic
          durable: true
          
  command.requests:
    description: 命令请求通道  
    bindings:
      amqp:
        is: routingKey
        exchange:
          name: gmkx.command
          type: topic
          durable: true

operations:
  publishDomainEvent:
    action: send
    channel:
      $ref: '#/channels/domain.events'
    messages:
      - $ref: '#/components/messages/AchievementPublished'
      - $ref: '#/components/messages/DemandCreated'
      - $ref: '#/components/messages/MatchFound'
      
  subscribeMatchCommand:
    action: receive
    channel:
      $ref: '#/channels/command.requests' 
    messages:
      - $ref: '#/components/messages/TriggerMatch'

components:
  messages:
    AchievementPublished:
      messageId: achievement-published
      correlationId:
        location: "$message.header#/correlationId"
      payload:
        $ref: '#/components/schemas/AchievementPublishedPayload'
        
  schemas:
    AchievementPublishedPayload:
      type: object
      required: [achievementId, ownerId, timestamp]
      properties:
        achievementId:
          type: string
          pattern: '^ACH_[0-9A-HJKMNP-TV-Z]{26}$'
        ownerId:
          type: string  
          pattern: '^USR_[0-9A-HJKMNP-TV-Z]{26}$'
        techField:
          type: string
          maxLength: 100
        timestamp:
          type: string
          format: date-time

设计模式与最佳实践

1. 微服务设计原则

  • 单一职责: 每个服务专注一个业务域
  • 服务自治: 独立部署、独立扩展、独立故障
  • 去中心化: 避免服务间直接调用,使用事件驱动
  • 容错设计: 熔断、限流、降级、重试机制

2. 数据一致性策略

  • 事务性操作: 单服务内使用本地事务
  • 跨服务操作: 使用 Saga 模式或事件溯源
  • 最终一致性: 通过补偿机制保证数据一致性
  • 幂等性: 所有接口支持重试和幂等

3. 缓存策略设计

# 三级缓存架构
L1_Cache:  # 本地缓存
  Technology: Caffeine
  TTL: 5-30 minutes  
  Use_Case: 热点数据、字典数据
  
L2_Cache:  # 分布式缓存
  Technology: Redis Cluster
  TTL: 1-24 hours
  Use_Case: 用户会话、API结果
  
L3_Cache:  # 冷数据缓存  
  Technology: Redis + MinIO
  TTL: 1-7 days
  Use_Case: 报表数据、文件缓存

# 缓存更新策略
Cache_Aside:     # 旁路缓存模式
Write_Through:   # 写透模式
Write_Behind:    # 写回模式  
Refresh_Ahead:   # 预刷新模式

4. 安全设计

# 认证授权
Authentication:
  Technology: Keycloak + JWT
  Flow: Authorization Code + PKCE
  MFA: TOTP + SMS
  
Authorization:  
  Model: RBAC + ABAC
  Technology: OPA (Open Policy Agent)
  Granularity: API级 + 数据级 + 字段级
  
# 数据保护
Encryption:
  In_Transit: TLS 1.3
  At_Rest: AES-256-GCM
  Key_Management: HashiCorp Vault
  
Privacy:
  PII_Masking: 动态脱敏
  Data_Classification: 敏感度标记
  Audit_Trail: 完整操作审计

5. 性能优化策略

# 数据库优化
Database:
  Partitioning: 按时间/租户分区
  Indexing: 复合索引优化
  Read_Replica: 读写分离
  Connection_Pool: HikariCP
  
# 应用优化  
Application:
  Lazy_Loading: 延迟加载
  Batch_Processing: 批量处理
  Async_Processing: 异步处理
  Cache_Warming: 缓存预热
  
# 网络优化
Network:
  CDN: 静态资源加速  
  Compression: Gzip/Brotli压缩
  Keep_Alive: 连接复用
  HTTP2: 多路复用

技术选型对比

搜索引擎选型

特性 OpenSearch Elasticsearch Solr
许可证 Apache 2.0 Elastic License Apache 2.0
信创兼容 ✅ 优秀 ❌ 受限 ✅ 良好
中文支持 ✅ IK分词器 ✅ IK分词器 ✅ SmartCN
性能 ✅ 优秀 ✅ 优秀 ⚠️ 一般
生态 ✅ 活跃 ✅ 丰富 ⚠️ 逐渐衰落
推荐 ✅ 首选 ❌ 不推荐 ❌ 不推荐

向量数据库选型

特性 Milvus Qdrant pgvector
性能 ✅ 优秀 ✅ 优秀 ⚠️ 一般
扩展性 ✅ 优秀 ✅ 良好 ❌ 受限
运维成本 ⚠️ 复杂 ✅ 简单 ✅ 简单
生态支持 ✅ 丰富 ✅ 良好 ⚠️ 有限
推荐 ✅ 首选 ✅ 备选 ❌ 不推荐

工作流引擎选型

特性 Flowable Activiti 7 Camunda
BPMN 2.0 ✅ 完整 ✅ 完整 ✅ 完整
社区活跃度 ✅ 高 ⚠️ 中等 ✅ 高
中文文档 ✅ 丰富 ✅ 丰富 ⚠️ 有限
信创适配 ✅ 良好 ✅ 良好 ⚠️ 一般
推荐 ✅ 首选 ✅ 备选 ❌ 不推荐

部署架构图

graph TB
    subgraph "外部用户"
        Users[Web用户]
        Mobile[移动用户]
        API[API调用者]
    end
    
    subgraph "CDN & WAF"
        CDN[内容分发网络]
        WAF[Web应用防火墙]
    end
    
    subgraph "负载均衡层"
        LB[负载均衡器]
        SSL[SSL终止]
    end
    
    subgraph "Kubernetes集群"
        subgraph "Ingress"
            Ingress[Ingress Controller]
        end
        
        subgraph "网关层"
            Gateway[API Gateway]
            Auth[认证服务]
        end
        
        subgraph "业务服务层"
            UserSvc[用户服务]
            AchSvc[成果服务] 
            DemSvc[需求服务]
            BroSvc[经纪服务]
            ActSvc[活动服务]
            AISvc[AI服务]
            NotSvc[通知服务]
            FileSvc[文件服务]
        end
        
        subgraph "中间件层"
            Redis[Redis集群]
            MQ[RabbitMQ集群]
            Kafka[Kafka集群]
        end
    end
    
    subgraph "数据存储层"
        DM8[达梦数据库]
        OpenSearch[OpenSearch集群]
        Milvus[Milvus向量库]
        MinIO[MinIO对象存储]
    end
    
    subgraph "监控运维"
        Prometheus[Prometheus]
        Grafana[Grafana]
        Jaeger[Jaeger追踪]
        ELK[日志分析]
    end
    
    Users --> CDN
    Mobile --> CDN  
    API --> CDN
    CDN --> WAF
    WAF --> LB
    LB --> Ingress
    Ingress --> Gateway
    Gateway --> Auth
    Gateway --> UserSvc
    Gateway --> AchSvc
    Gateway --> DemSvc
    Gateway --> BroSvc
    Gateway --> ActSvc
    Gateway --> AISvc
    Gateway --> NotSvc
    Gateway --> FileSvc
    
    UserSvc --> Redis
    AchSvc --> Redis
    DemSvc --> Redis
    
    UserSvc --> MQ
    AchSvc --> MQ
    DemSvc --> MQ
    BroSvc --> MQ
    
    AISvc --> Kafka
    NotSvc --> Kafka
    
    UserSvc --> DM8
    AchSvc --> DM8
    DemSvc --> DM8
    BroSvc --> DM8
    ActSvc --> DM8
    
    AchSvc --> OpenSearch
    DemSvc --> OpenSearch
    AISvc --> Milvus
    FileSvc --> MinIO
    
    Gateway --> Prometheus
    UserSvc --> Prometheus
    AchSvc --> Prometheus
    DemSvc --> Prometheus
    
    Prometheus --> Grafana
    Gateway --> Jaeger
    UserSvc --> Jaeger
    
    Gateway --> ELK
    UserSvc --> ELK
    AchSvc --> ELK