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

Spring RestClient在Kubernetes集群中调用外部API触发ConnectException连接异常排查求助

Spring RestClient在Kubernetes集群中调用外部API触发ConnectException连接异常排查求助

大家好,我本地使用Spring的RestClient进行REST接口调用完全正常,但部署到Kubernetes集群的Pod中执行时就遇到了问题,想请大家帮忙排查下原因。

我的调用代码如下:

private fun callApi() {
        log.info("Deleting device with $id")
        restClient
            .delete()
            .uri("${getBaseUrl()}/api/${getId()}")
            .headers { it.setBearerAuth(getToken()) }
            .retrieve()
            .onStatus({ obj: HttpStatusCode -> obj.isError }, ERROR_HANDLER)
            .toBodilessEntity()
    }

在集群中执行时会抛出如下异常:

org.springframework.web.client.ResourceAccessException: I/O error 
on GET request for "https://my-api.com": null   at 
org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriS 
pec.createResourceAccessException(DefaultRestClient.java:584) ~ 
[spring-web-6.1.13.jar!/:6.1.13]    at
org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriS 
pec.exchangeInternal(DefaultRestClient.java:498) ~[spring-web- 
6.1.13.jar!/:6.1.13]    at 
org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriS 
pec.retrieve(DefaultRestClient.java:458) ~[spring-web- 
6.1.13.jar!/:6.1.13]

Caused by: java.net.ConnectException: null  at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl. 
java:951) ~[java.net.http:na]   at 
java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFac 
ade.java:133) ~[java.net.http:na]   at 
org.springframework.http.client.JdkClientHttpRequest.executeInternal(Jd 
kClientHttpRequest.java:102) ~[spring-web-6.1.13.jar!/:6.1.13]  at 
org.springframework.http.client.AbstractStreamingClientHttpRequest.exec 
uteInternal(AbstractStreamingClientHttpRequest.java:70) ~[spring- 
web-6.1.13.jar!/:6.1.13]    at org.springframework.http.client.AbstractClientHttpRequest.execute(Abstr 
actClientHttpRequest.java:66) ~[spring-web-6.1.13.jar!/:6.1.13] at org.springframework.web.client.DefaultRestClient$DefaultRequestBodyUriS 
pec.exchangeInternal(DefaultRestClient.java:492) ~[spring-web- 
6.1.13.jar!/:6.1.13]    ... 35 common frames omittedCaused by: 
java.net.ConnectException: null at 
java.net.http/jdk.internal.net.http.common.Utils.toConnectException(Uti 
ls.java:1028) ~[java.net.http:na]   at 
java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(Pl 
ainHttpConnection.java:227) ~[java.net.http:na] at java.net.http/jdk.internal.net.http.PlainHttpConnection.checkRetryConne 
ct(PlainHttpConnection.java:280) ~[java.net.http:na]    at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectA 
sync$2(PlainHttpConnection.java:238) ~[java.net.http:na]    at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableF 
uture.java:934) ~[na:na]    at 
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(C 
ompletableFuture.java:911) ~[na:na] at 
java.base/java.util.concurrent.CompletableFuture.postComplete(Comple 
tableFuture.java:510) ~[na:na]  at 
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Com 
pletableFuture.java:1773) ~[na:na]  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPo 
olExecutor.java:1144) ~[na:na]  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadP 
oolExecutor.java:642) ~[na:na]  at 
java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]Caused by: 
java.nio.channels.ClosedChannelException: null  at 
java.base/sun.nio.ch.SocketChannelImpl.ensureOpen(SocketChannelImpl. 
java:202) ~[na:na]  at 
java.base/sun.nio.ch.SocketChannelImpl.beginConnect(SocketChannelImp 
l.java:786) ~[na:na]    at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.jav 
a:874) ~[na:na] at 
java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$conne 
ctAsync$1(PlainHttpConnection.java:210) ~[java.net.http:na] at java.base/java.security.AccessController.doPrivileged(AccessControll 
er.java:571) ~[na:na]   at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync 
(PlainHttpConnection.java:212) ~[java.net.http:na]  ... 9 common 
frames omitted

如果需要更多信息请随时告诉我,非常感谢大家的任何提示!

备注:内容来源于stack exchange,提问作者rento

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 08:48:06