痛點與隱性成本
共享網關是自動化路徑的匯流點;無預算時,多節點的請求是相加而非平均。
- 工作階段疊加:每節點兩個平行任務,十節點即可對同一程序呈現二十條長連線。
- 重試風暴:客戶端未區分 429 與 503 時,指數退避缺失會放大入口壓力。
- 觀測碎片化:各節點日誌缺共同欄位,難以還原「誰在何時耗盡配額」。
決策矩陣:令牌桶與連線/工作階段閾值
令牌桶平滑 HTTP 突發;連線/號誌約束同時昂貴工作。實務並用。主題見OpenClaw 匯整。
| 機制 | 適用 | 起點(依硬體調校) |
|---|---|---|
| 每租戶令牌桶 | Webhook 風暴、輪詢 REST | 補牌每秒約五至二十次,突發桶三十至六十 |
| 全域令牌桶 | 共用上游 LLM 或廠商 API | 以廠商配額扣安全邊際為補牌率 |
| 工作階段上限 | 長連線代理、工具執行 | 每節點類型二至八,叢集總和不大於網關天花板 |
| TCP/上游連線上限 | 避免檔案描述元耗盡 | 硬上限並保留核心 ulimit 餘裕 |
落地步驟:網關限流設計(可複現)
- 盤點路由:為每條 HTTP 或 RPC 標註
互動、CI 入站、內部工作者,寫入日誌route_class。 - 選擇身分鍵:以 IP、API 金鑰指紋、OAuth 主體或自訂
tenant_id區隔,避免單一鄰居餓死他人。 - 每類兩個數字:(甲)持續每秒請求與突發桶;(乙)同時工作階段或上游連線上限。
- 邊界比佇列嚴:網關准入應緊於佇列堆疊成長;在邊緣拒絕成本低於 dequeue 毒化任務。
- 暗發布觀測:先僅計數「將被拒絕」事件,再開強制回 429/503,對照 p95 延遲。
CI、訊息通道併發與健康檢查聯動
管線須呼應網關:Actions concurrency 限同環境觸網關數,並下調矩陣平行。機器人重試當第二層桶,與 HTTP RPS 並管。/healthz 合併磁碟、佇列與依賴;探針紅或延遲超標時新工作階段回 503+Retry-After,在途短截止排乾;CPU 長高可暫緊補牌,恢復再鬆。
失敗觀測與日誌欄位
拒絕/卸載事件建議 JSON 單行,含 mesh_node_id、gateway_instance_id、route_class、limit_name、client_id(脫敏)、http_status、retry_after_ms、可選 queue_depth_hint。租戶長期高 429 多設定問題;503 尖峰併健康紅燈多容量或依賴事故。
FAQ
問:限流放代理還是 OpenClaw?
答:代理管粗粒度與 TLS;程序管工作階段與工具限流;雙層皆文件化。
問:多節點如何禮貌共用?
答:副本同參或集中配額;觸發加抖動;每節點併發上限使總和不超網關預算。
問:429 與 503?
答:429 依 Retry-After 退避;503 當短時不可用;日誌欄位一致便於告警。