async-http-client 与 HttpAsyncClient 的回调执行线程模型深度解析
发布时间:2026年02月06日
问题引入:一个 Flink 实时告警系统中的“幽灵阻塞”
在某金融风控平台,我们部署了一个基于Apache Flink 1.17的实时交易监控作业。该作业通过async-http-client 3.0.6异步调用企业微信 Webhook 接口,在检测到异常交易时发送告警消息。系统上线初期运行平稳,但在流量高峰(QPS > 5000)时,突然出现背压(Backpressure)飙升、Checkpoint 超时、TaskManager CPU 使用率异常波动等现象。
通过jstack抓取线程堆栈,我们发现大量类似以下的线程:
"AsyncHttpClient-3-1" #42 daemon prio=5 os_prio=0 cpu=1234ms elapsed=120.5s tid=0x00007f8a1c001000 nid=0x2a runnable [0x00007f8a0d0fe000] java.lang.Thread.State: RUNNABLE at com.example.alert.service.WeComAl