#39014 [Router] Count open HTTP exchanges until their response body finishes
原始 PR · 作者 Kangyan-Zhou · 合并时间 2026-09-16 15:04
Router 新增在途 HTTP 计数,随响应体结束才释放
值得精读,但只需聚焦两个文件:`src/server/inflight.rs`(计数原语与 RAII 守卫的设计,全文是标准「streaming 会计」范式)与 `src/server/app.rs` 的 `count_requests`(唯一的接线点,一行 `resp.map(...)` 承载了全部语义)。阅读时重点回答三个问题:(1) 为什么守卫必须挂在响应体而不是 handler future;(2) 为什么必须是 `Drop` 而不是显式 decrement(客户端中途断开);(3) 为什么 `Relaxed` 足够。测试部分值得看的是「非空性验证」思路 —— 作者通过把守卫改回 handler 出口释放来证明测试不是空断言,这种自我证伪值得借鉴。追 #39016 时建议回看本 PR,确认 drain 的等待条件确实基于这条 gauge,并补充 gzip / timeout 层下的在途观测。夹带的 `pd_protocol_binding.rs` 修复可略读。