You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring WebFlux中WebClient调用Rest API卡在Unsafe.park的原因与排查

WebClient调用Rest API卡住问题

问题现象

  • 使用WebClient调用Rest API时,日志打印thread=reactor-http-nio-6 level=DEBUG logger=reactor.netty.http.client.HttpClient trace_id= span_id= message="[357a6a9a] REGISTERED"后就卡住,线程停在Java Unsafe类的park方法
  • 同一应用内用RestTemplate调用相同端点完全正常;应用启动阶段用WebClient调用另一个端点也正常;其他应用采用相同WebClient方式调用5-6个不同主机及端点均无异常
  • 更新:仅使用不带lambda函数的空subscribe()(bare subscribe)时可正常工作

环境信息

  • Java版本:11
  • Spring WebFlux版本:5.3.25
  • reactor-netty-http版本:1.0.27

调用代码

bookingChangeServiceWebClient.put().uri("bookingChange")
            .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).bodyValue(
                orderChangeEventRequest,
            ).retrieve().bodyToMono(String::class.java).subscribe({response -> countDownLatch.countDown()}, {error -> countDownLatch.countDown()})

已尝试操作

  • 替换subscribe()为awaitBody(),问题依旧存在

线程Dump信息(调用awaitBody()时)

"reactor-http-nio-6" prio=0 tid=0x0 nid=0x0 waiting on condition

内容的提问来源于stack exchange,提问作者nikator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:02:05