async-http-client 的getResponseBody()是否自动释放资源?与 HttpAsyncClient 的HttpEntity手动管理对比全解析
发布时间:2026年02月07日
作者:九师兄
一、问题引入:一次因响应体未释放导致的 Direct Memory OOM 事故
2025 年,某实时用户画像平台在使用async-http-client将 Flink 流式计算结果写入企业微信告警接口时,遭遇了诡异的堆外内存(Direct Memory)泄漏。
业务逻辑如下:
- 每当检测到异常行为(如高频刷单),Flink 作业触发告警;
- 通过 async-http-client 发送 POST 请求至企业微信 Webhook;
- 响应体通常为
{"errcode":0,"errmsg":"ok"}(约 30 字节)。
初期实现代码:
<