我正在将zuul配置迁移到spring cloud gateway mvc中。我在 spring boot application.yml 中配置了以下内容
spring:
cloud:
gateway:
mvc:
routes:
- id: rabbitmq
uri: http://localhost:15672/
predicates:
- Path=/rabbitmq/**
- Method=GET, POST
filters:
- StripPrefix=1
如何在本地计算机中成功重定向,但在服务器中经常失败并出现以下错误
java.io.IOException: closed
at java.net.http/jdk.internal.net.http.ResponseSubscribers$HttpResponseInputStream.current(ResponseSubscribers.java:460) ~[java.net.http:na]
at java.net.http/jdk.internal.net.http.ResponseSubscribers$HttpResponseInputStream.read(ResponseSubscribers.java:499) ~[java.net.http:na]
at java.base/java.io.InputStream.transferTo(InputStream.java:782) ~[na:na]
at org.springframework.util.StreamUtils.copy(StreamUtils.java:150) ~[spring-core-6.1.4.jar:6.1.4]
at org.springframework.cloud.gateway.server.mvc.handler.RestClientProxyExchange.lambda$doExchange$3(RestClientProxyExchange.java:52) ~[spring-cloud-gateway-server-mvc-4.1.0.jar:4.1.0]
at org.springframework.cloud.gateway.server.mvc.handler.GatewayServerResponseBuilder$WriteFunctionResponse.writeToInternal(GatewayServerResponseBuilder.java:218) ~[spring-cloud-gateway-server-mvc-4.1.0.jar:4.1.0]
at org.springframework.cloud.gateway.server.mvc.handler.AbstractGatewayServerResponse.writeTo(AbstractGatewayServerResponse.java:103) ~[spring-cloud-gateway-server-mvc-4.1.0.jar:4.1.0]
at org.springframework.web.servlet.function.support.HandlerFunctionAdapter.handle(HandlerFunctionAdapter.java:111) ~[spring-webmvc-6.1.4.jar:6.1.4]
春季启动版本='3.2.3' spring-cloud-starter-gateway-mvc 版本:4.1.0
我尝试使用 http 客户端更改 spring boot 安全配置和连接超时属性,但没有任何效果..
RestClientProxyChange 的 IO 异常不应在服务器中发生。
因为我在这里绝望了,所以我改变了使用 nginx 入口控制器而不是 spring 云网关来路由服务的方法。我完全删除了 Spring Boot 服务中的 Spring Cloud Gateway MVC 代码,并使用 Kubernets nginx 入口控制器实现了路由。