## 🏗️ 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>
系统设计与架构
概述
基于详细设计文档和开源技术栈,制定光明科学城科技成果转化平台的系统架构设计和技术实施方案。
架构设计
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