Облачный шлюз Spring не может маршрутизировать переписанный путь - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь развернуть Spring Cloud Gateway в качестве внешнего интерфейса для серверных служб, все запросы должны быть перенаправлены через шлюз. бэкэнд-службы развернуты в кластере aws ecs за слушателем elb.

Я пытаюсь направить запрос к DNS-слушателю elb (msdp.dev.np.supplychain.morconnect.com), чтобы переслать этот запрос для исправления служба. но получаю.

текущий yml:

spring:
  profiles:
    active: local
  cloud:
    gateway:
      routes:
        - id: users
          uri: https://msdp.dev.np.supplychain.morconnect.com
          predicates:
            - Path=/msdp/**
          filters:
            - RewritePath=/msdp/(?<segment>.*), /msdp-api/$\{segment}

Облачный шлюз Spring и другие серверные службы находятся за одним и тем же балансировщиком нагрузки и на основе правил прослушивателя запрос будет перенаправлен в соответствующую службу.

Правила прослушивателя следующие: enter image description here

Now when am trying to reach backend service via cloud gateway with url https://msdp.dev.np.supplychain.morconnect.com/msdp/portal/user-requests/v1/healthcheck, ожидается, что он будет перенаправлен на https://msdp.dev.np.supplychain.morconnect.com/msdp-api/portal/user-requests/v1/healthcheck, но я получаю следующую ошибку

2020-08-04 17:25:03 DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkAccessible: true
2020-08-04 17:25:03 DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkBounds: true
2020-08-04 17:25:03 DEBUG i.n.u.ResourceLeakDetectorFactory$DefaultResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@259a1c11
2020-08-04 17:25:03 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xc525577c, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62879] New http connection, requesting read
2020-08-04 17:25:03 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xce460c87, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62880] New http connection, requesting read
2020-08-04 17:25:03 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xce460c87, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62880] Initialized pipeline DefaultChannelPipeline{(BootstrapHandlers$BootstrapInitializerHandler#0 = reactor.netty.channel.BootstrapHandlers$BootstrapInitializerHandler), (reactor.left.httpCodec = io.netty.handler.codec.http.HttpServerCodec), (reactor.left.httpTrafficHandler = reactor.netty.http.server.HttpTrafficHandler), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
2020-08-04 17:25:03 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xc525577c, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62879] Initialized pipeline DefaultChannelPipeline{(BootstrapHandlers$BootstrapInitializerHandler#0 = reactor.netty.channel.BootstrapHandlers$BootstrapInitializerHandler), (reactor.left.httpCodec = io.netty.handler.codec.http.HttpServerCodec), (reactor.left.httpTrafficHandler = reactor.netty.http.server.HttpTrafficHandler), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
2020-08-04 17:25:03 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
2020-08-04 17:25:03 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxSharedCapacityFactor: 2
2020-08-04 17:25:03 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.linkCapacity: 16
2020-08-04 17:25:03 DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
2020-08-04 17:25:03 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xc525577c, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62879] Increasing pending responses, now 1
2020-08-04 17:25:03 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xc525577c, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62879] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@34320ed3
2020-08-04 17:25:03 DEBUG o.s.core.log.LogFormatUtils - [c525577c] HTTP GET "/msdp/portal/user-requests/v1/healthcheck"
2020-08-04 17:25:03 DEBUG o.s.c.g.r.RouteDefinitionRouteLocator - RouteDefinition users applying {_genkey_0=/msdp/**} to Path
2020-08-04 17:25:03 DEBUG o.s.c.g.r.RouteDefinitionRouteLocator - RouteDefinition users applying filter {_genkey_0=/msdp/(?<segment>.*), _genkey_1=/msdp-api/$\{segment}} to RewritePath
2020-08-04 17:25:03 DEBUG o.s.c.g.r.RouteDefinitionRouteLocator - RouteDefinition matched: users
2020-08-04 17:25:03 DEBUG o.s.c.g.h.RoutePredicateHandlerMapping - Route matched: users
2020-08-04 17:25:03 DEBUG o.s.c.g.h.RoutePredicateHandlerMapping - Mapping [Exchange: GET http://localhost:8087/msdp/portal/user-requests/v1/healthcheck] to Route{id='users', uri=https://msdp.dev.np.supplychain.morconnect.com:443, order=0, predicate=org.springframework.cloud.gateway.support.ServerWebExchangeUtils$$Lambda$463/609825180@6dc60c77, gatewayFilters=[OrderedGatewayFilter{delegate=org.springframework.cloud.gateway.filter.factory.RewritePathGatewayFilterFactory$$Lambda$464/869610006@4a9d9a8, order=1}]}
2020-08-04 17:25:03 DEBUG o.s.w.r.h.AbstractHandlerMapping - [c525577c] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@ce12acd
2020-08-04 17:25:03 DEBUG o.s.c.g.handler.FilteringWebHandler - Sorted gatewayFilterFactories: [OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@7c4fc2bf}, order=-2147483648}, OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@64aad6db}, order=-2147482648}, OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@58d63b16}, order=-1}, OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@46866946}, order=0}, OrderedGatewayFilter{delegate=org.springframework.cloud.gateway.filter.factory.RewritePathGatewayFilterFactory$$Lambda$464/869610006@4a9d9a8, order=1}, OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@7772054c}, order=10000}, OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.config.GatewayNoLoadBalancerClientAutoConfiguration$NoLoadBalancerClientFilter@236134a1}, order=10100}, OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@44de0113}, order=2147483646}, OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@6a0659ac}, order=2147483647}, OrderedGatewayFilter{delegate=GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@2f61f937}, order=2147483647}]
2020-08-04 17:25:03 DEBUG io.netty.handler.ssl.OpenSsl - netty-tcnative not in the classpath; OpenSslEngine will be unavailable.
2020-08-04 17:25:04 DEBUG io.netty.handler.ssl.JdkSslContext - Default protocols (JDK): [TLSv1.2, TLSv1.1, TLSv1] 
2020-08-04 17:25:04 DEBUG io.netty.handler.ssl.JdkSslContext - Default cipher suites (JDK): [TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA]
2020-08-04 17:25:04 DEBUG reactor.util.Loggers$Slf4JLogger - Creating new client pool [proxy] for msdp.dev.np.supplychain.morconnect.com:443
2020-08-04 17:25:04 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0x05b17730] Created new pooled channel, now 0 active connections and 1 inactive connections
2020-08-04 17:25:04 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0x05b17730] SSL enabled using engine SSLEngineImpl and SNI msdp.dev.np.supplychain.morconnect.com:443
2020-08-04 17:25:04 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0x05b17730] Initialized pipeline DefaultChannelPipeline{(reactor.left.sslHandler = io.netty.handler.ssl.SslHandler), (reactor.left.sslReader = reactor.netty.tcp.SslProvider$SslReadHandler), (BootstrapHandlers$BootstrapInitializerHandler#0 = reactor.netty.channel.BootstrapHandlers$BootstrapInitializerHandler), (SimpleChannelPool$1#0 = io.netty.channel.pool.SimpleChannelPool$1), (reactor.left.httpCodec = io.netty.handler.codec.http.HttpClientCodec), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
2020-08-04 17:25:25 DEBUG o.s.core.log.CompositeLog - [c525577c] Resolved [AnnotatedConnectException: Connection timed out: no further information: msdp.dev.np.supplychain.morconnect.com/52.211.23.237:443] for HTTP GET /msdp/portal/user-requests/v1/healthcheck
2020-08-04 17:25:25 ERROR o.s.core.log.CompositeLog - [c525577c] 500 Server Error for HTTP GET "/msdp/portal/user-requests/v1/healthcheck"
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection timed out: no further information: msdp.dev.np.supplychain.morconnect.com/52.211.23.237:443
Caused by: java.net.ConnectException: Connection timed out: no further information
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_31]
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716) ~[na:1.8.0_31]
    at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:327) ~[netty-transport-4.1.38.Final.jar:4.1.38.Final]
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:336) ~[netty-transport-4.1.38.Final.jar:4.1.38.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:685) ~[netty-transport-4.1.38.Final.jar:4.1.38.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632) ~[netty-transport-4.1.38.Final.jar:4.1.38.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549) ~[netty-transport-4.1.38.Final.jar:4.1.38.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511) ~[netty-transport-4.1.38.Final.jar:4.1.38.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918) [netty-common-4.1.38.Final.jar:4.1.38.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.38.Final.jar:4.1.38.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.38.Final.jar:4.1.38.Final]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
2020-08-04 17:25:25 DEBUG o.s.core.log.CompositeLog - [c525577c] Writing "<html><body><h1>Whitelabel Error Page</h1><p>This application has no configured error view, so you  (truncated)...
2020-08-04 17:25:25 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xc525577c, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62879] Decreasing pending responses, now 0
2020-08-04 17:25:25 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xc525577c, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62879] Last HTTP packet was sent, terminating the channel
2020-08-04 17:25:25 DEBUG o.s.core.log.LogFormatUtils - [c525577c] Completed 500 INTERNAL_SERVER_ERROR
2020-08-04 17:25:25 DEBUG reactor.util.Loggers$Slf4JLogger - [id: 0xc525577c, L:/0:0:0:0:0:0:0:1:8087 - R:/0:0:0:0:0:0:0:1:62879] Last HTTP response frame
...