graph TD
A[前端界面] -->|HTTP API| B(FastAPI后端)
B -->|Redis| C[代理池管理]
B -->|Celery| D[Worker集群]
C --> E[本地代理实例]
D --> F[分布式任务]
classDiagram
class SubscriptionManager{
+redis_client: Redis
+list_proxies_mgr: Dict[int, ProxyManager]
+download_subscription()
+create_custom_config()
+start_proxy()
+ping_proxies()
}
class ProxyManager{
+mimo_exe: str
+config_path: str
+start_proxy()
+stop_proxy()
+ping_proxies()
}
class ProcessManager{
+processes: dict
+start_process()
+stop_process()
}
Redis存储结构:
# 代理池集合(自动去重)
redis_client.sadd('proxy_pool', *healthy_proxies)
# 自动过期机制
redis_client.expire('proxy_pool', interval*2)
健康检查机制:
通信机制:
# 任务调用示例
celery_app.send_task('search_worker.add', args=[2, 2])
sequenceDiagram
前端->>+后端: /api/proxy/proxies (GET)
后端->>+Redis: SMEMBERS proxy_pool
Redis-->>-后端: 代理列表
后端-->>-前端: 返回代理状态
前端->>后端: /api/worker/browser_config (POST)
后端->>Celery: 发送配置更新任务
Celery->>Worker: 应用新配置
Worker-->>Celery: 确认结果
Celery-->>后端: 任务状态
后端-->>前端: 操作结果
流量控制策略
Worker管理
分布式任务调度
浏览器配置热更新
任务状态监控
异常自动恢复
系统集成
基于Redis的代理池共享
跨进程管理(ProcessManager)
Windows系统代理集成
日志统一管理
单机部署(当前):
前端 + 后端 + Redis + Celery Worker
未来扩展:
[Redis]
/ \
[管理节点] [Worker节点1]
前端+后端 [Worker节点2]
[Worker节点...]
| 项目 | 单机规格 | 扩展目标 |
|---|---|---|
| 代理实例 | 5-10个 | 无上限 |
| 任务吞吐 | 100任务/分钟 | 500+任务/分钟 |
| 延迟 | <200ms | <100ms |
| 可用性 | 99% | 99.9% |