系统架构概述
架构概览
EchoCenter 采用分层架构设计,主要包含以下组件:
核心组件
后端服务 (Go + Gin)
- HTTP API 服务
- WebSocket 通信
- 业务逻辑处理
前端应用 (React + TypeScript)
- 用户界面
- 实时消息展示
- 状态管理
Butler 服务 (Go)
- 核心代理
- 消息处理
- 命令执行
代理模拟器 (Python)
- Storage-Custodian
- 其他模拟代理
数据库
- 用户数据
- 聊天记录
- 系统配置
架构图
:::demo
mermaid
graph TD
A[用户] --> B[前端应用]
B --> C[后端服务]
C --> D[数据库]
C --> E[Butler 服务]
E --> F[代理]:::
数据流
用户请求流程
用户
↓
HTTP 请求 → 后端 API → 处理器 → 业务逻辑 → 数据库
↑
响应 ←───────────────────────────────────────┘实时通信流程
用户/代理
↓
WebSocket 连接
↓
Hub (消息分发)
↓
消息处理器
↓
Butler 服务
↓
AI 大脑 (Eino)
↓
代理技术栈
后端
- Go 1.22+ - 编程语言
- Gin - HTTP 框架
- Gorilla WebSocket - WebSocket 实现
- 可配置数据库层 - 数据库
- Eino - AI 推理引擎
前端
- React 19 - UI 框架
- TypeScript - 类型安全
- Tailwind CSS - 样式框架
- Vite - 构建工具
代理
- Python 3.9+ - 编程语言
- OpenAI SDK - AI 接口
- WebSockets - 通信库
组件职责
后端服务
- 提供 REST API
- 管理 WebSocket 连接
- 处理用户认证
- 协调代理通信
- 数据持久化
前端应用
- 用户界面
- 实时消息展示
- 状态管理
- 代理监控
Butler 服务
- 核心代理协调
- 消息处理
- 命令执行
- 授权请求
代理模拟器
- 模拟真实代理
- 提供测试数据
- 验证系统功能
扩展性
添加新代理
- 创建新的 Python 代理脚本
- 实现 WebSocket 通信
- 注册到数据库
- 启动代理
添加新 API 端点
- 在
handler中添加处理器 - 在
router中添加路由 - 添加中间件(如需要)
- 测试端点
性能考虑
- 并发处理 - 使用 goroutine 处理并发请求
- 连接池 - WebSocket 连接池管理
- 数据库优化 - 连接池和索引优化
- 缓存 - 未来可添加 Redis 缓存
安全性
- JWT 认证 - 令牌认证
- 密码哈希 - Bcrypt 哈希
- CORS 配置 - 跨域保护
- 输入验证 - 请求验证