如何快速部署 Claw Compactor Proxy:多 Worker 负载均衡 + 实时监控仪表盘完整教程
【免费下载链接】claw-compactor14-stage Fusion Pipeline for LLM token compression — reversible compression, AST-aware code analysis, intelligent content routing. Zero LLM inference cost. MIT licensed.项目地址: https://gitcode.com/gh_mirrors/cl/claw-compactor
Claw Compactor Proxy是一个将 Claude Code CLI 包装成 OpenAI 兼容 API 的本地代理网关,属于 LLM Token 压缩工具链 Claw Compactor 的配套设施。它支持多 Worker 轮询负载均衡、会话亲和路由、公平排队、按模型限流,并内置一个实时监控仪表盘,让你随时掌握 Worker 流量、Token 消耗与错误分布。本教程将带你用 5 个步骤完成部署。
一、Claw Compactor Proxy 是什么?
Proxy 位于仓库的 proxy/ 目录,核心能力一览:
- 多 Worker 轮询:多个 Claude Code CLI 实例独立配额,流量自动分摊
- 会话亲和:同一对话 30 分钟内固定路由到同一 Worker,保住速率预算
- 公平队列:多来源请求轮流调度,支持 high / normal / low 优先级
- 实时仪表盘:Token 用量、时序图表、SSE 直播流、Worker 流量分布一屏尽览
- 进程回收器:自动清理超时与僵尸 CLI 进程
- Token 计量:按模型统计输入 / 输出 Token,Redis 持久化
- 失败重试:指数退避 + 抖动,Worker 故障自动切换
架构链路非常简单:
客户端 (OpenAI 格式) → Proxy → 公平队列 → Worker 池 → Claude CLI → 响应更多细节可参考 proxy/README.md。
二、一键部署:4 步完成搭建
第 1 步:克隆仓库并安装依赖
git clone https://gitcode.com/gh_mirrors/cl/claw-compactor cd claw-compactor/proxy npm install第 2 步:配置多 Worker 池
通过WORKERS环境变量传入 JSON 数组,每个 Worker 绑定独立的 Claude Code OAuth Token,从而拥有独立的速率配额——这正是多 Worker 负载均衡能翻倍吞吐的关键:
[ {"name": "1", "bin": "/path/to/claude", "token": "oauth-token-1"}, {"name": "2", "bin": "/path/to/claude", "token": "oauth-token-2"} ]未配置时,服务会使用 proxy/server.mjs 中内置的默认 Worker 池。
第 3 步:设置端口与鉴权
export WORKERS='[{"name":"1","bin":"/path/to/claude","token":"your-token"}]' export CLAUDE_PROXY_PORT=8403 export PROXY_AUTH_TOKEN=local-proxy # 生产环境请换成强密钥建议同时将 WORKERS 环境变量 写入.env或 shell 配置,避免重启丢失。
第 4 步:启动服务
npm start # 前台运行也可以直接使用 proxy/start.sh 脚本,它会自动停掉旧进程;加--bg参数可后台运行,日志写入/tmp/claude-proxy.log:
./start.sh --bg看到[CLIRouter] Pool: 1=... | 2=...的启动日志,说明 Worker 池加载成功 🎉
三、多 Worker 负载均衡是怎么工作的
这是 Proxy 最有价值的部分,由三个模块协同完成:
| 模块 | 文件 | 作用 |
|---|---|---|
| 轮询路由 | proxy/server.mjs | 流量按 round-robin 分摊到各 Worker,遇速率限制自动整体切换到备用 Worker,恢复后再回到负载均衡 |
| 会话亲和 | proxy/session-affinity.mjs | 按x-session-id→ 系统提示词指纹 → 来源 三级优先级生成会话键,30 分钟 TTL,保证多轮对话落在同一 Worker |
| 公平队列 | proxy/fair-queue.mjs | 多来源轮流取号,防止单一来源霸占全部并发;内置租约机制防止并发槽位泄漏 |
配合 proxy/rate-limiter.mjs 的 60 秒滑动窗口限流和 proxy/retry.mjs 的指数退避重试,即使某个 Worker 触发 429,请求也会被透明地转发到健康节点,客户端几乎无感。
四、打开实时监控仪表盘
服务启动后,浏览器访问:
http://localhost:8403/dashboard/proxy仪表盘(proxy/dashboard.html)提供以下实时视图:
- 📊Token 总览条:总量 + Opus / Sonnet / Haiku 分模型统计,含速率窗口
- 📈时序图表:按时间区间的 Token 与请求量曲线
- 🚦Worker 流量分布:每个 Worker 的请求数、错误数、最近活跃时间
- ⚠️错误分类统计:CLI 崩溃、上下文溢出、超时等 7 大类一目了然
- 📡SSE 直播流:请求事件实时滚动,另附活跃进程表与事件日志
除可视化页面外,还有 4 个运维接口方便脚本化监控:
| 接口 | 用途 |
|---|---|
GET /health | 健康检查 |
GET /metrics | 队列、进程、Token、Worker 统计(JSON) |
GET /events | 事件日志(轮询) |
GET /stream | SSE 实时事件流 |
五、常用调优参数速查
按需调整环境变量即可,无需改代码:
| 变量 | 默认值 | 说明 |
|---|---|---|
MAX_CONCURRENT | 10 | 最大并发 CLI 进程数 |
MAX_QUEUE_TOTAL | 100 | 队列总容量 |
MAX_QUEUE_PER_SOURCE | 20 | 单来源最大排队数 |
QUEUE_TIMEOUT_MS | 120000 | 排队超时(毫秒) |
MAX_PROCESS_AGE_MS | 1800000 | CLI 进程最长存活时间 |
MAX_IDLE_MS | 600000 | 空闲回收阈值 |
进程生命周期由 proxy/process-registry.mjs 守护:每 15 秒巡检一次,超过存活时长或 2 分钟无输出的进程会被自动收割,状态还会持久化到 Redis(见 proxy/redis-client.mjs),重启后指标不丢失。
六、日常运维小贴士 💡
- 查僵尸进程:访问
GET /zombies查看巡检结果,POST /kill可手动终止指定 CLI 进程 - 看 Token 账本:proxy/token-tracker.mjs 按模型与请求两级记账,数据落盘
data/tokens.json - 跑测试:
cd proxy && npm test可验证队列、限流、亲和等核心模块行为(测试位于 proxy/test/) - 生产安全:务必修改
PROXY_AUTH_TOKEN,默认值local-proxy仅适合本地调试
总结
Claw Compactor Proxy 用不到 10 个环境变量就能搭起一套多 Worker 负载均衡 + 实时监控的 LLM 代理网关:npm install→ 配置WORKERS→ 启动 → 打开仪表盘,全程 5 分钟。无论是想让多个 Claude Code 实例共享额度,还是为团队搭建统一的 OpenAI 兼容入口,它都是开箱即用的选择。更多设计细节可阅读 proxy/README.md 与 ARCHITECTURE.md。
【免费下载链接】claw-compactor14-stage Fusion Pipeline for LLM token compression — reversible compression, AST-aware code analysis, intelligent content routing. Zero LLM inference cost. MIT licensed.项目地址: https://gitcode.com/gh_mirrors/cl/claw-compactor
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考