如何解决Undertow-通过k8s服务调用微服务时检测到SSL读取循环
我有一个 reactive 微服务应用程序(我们将其称为微服务X),具有以下依赖性:Spring Boot v2.2.8.RELEASE,SpringWebFlux v5.2.7.RELEASE,Spring v5.2.7。发布,Undertow核心2.0.30.Final,将其部署在k8s环境中。 在这种环境下,还有另一个微服务(我们称此微服务Y)向微服务X发送HTTP请求。呼叫通过k8s服务进行。 当Y呼叫X时,随机发生以下错误:
微服务Y的日志:
<microservice-Y-name>,7,[https-jsse-nio-8080-exec-2],ERROR,....
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://hostname.svc.k8s.xxx.com/<microservice-X-name>/api/tasks": Unexpected end of file from server; nested exception is java.net.socketException: Unexpected end of file from server
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:748)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:651)
微服务X的日志:
SSL read loop detected. This should not happen,please report this to the Undertow developers. Current state SslConduit{state=20,outstandingTasks=0,wrappedData=null,dataToUnwrap=DefaultPooledBuffer{buffer=java.nio.DirectByteBuffer[pos=5461 lim=6026 cap=17408],referenceCount=1},unwrappedData=null}
28-08-2020 07:43:24.514,microservice-X-name,[boundedElastic-3876],c.w.o.o.w.d.HttpErrorHandler,..... : {}
org.springframework.web.server.ServerWebInputException: 400 BAD_REQUEST "Request body is missing: ....
at org.springframework.web.reactive.result.method.annotation.AbstractMessageReaderArgumentResolver.handleMissingBody(AbstractMessageReaderArgumentResolver.java:230)
at org.springframework.web.reactive.result.method.annotation.AbstractMessageReaderArgumentResolver.lambda$readBody$5(AbstractMessageReaderArgumentResolver.java:194)
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:70)
更改微服务Y配置以便通过k8s入口而不是k8s服务调用微服务X,永远不会发生错误。
关于为什么会发生这种情况的任何想法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。