Netflix / zuul

Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
Apache License 2.0
13.56k stars 2.4k forks source link

ProxyEndpoint [Salamander-ClientToZuulWorker-1] Error while connecting to origin #1075

Closed YumiSuki closed 3 months ago

YumiSuki commented 3 years ago

I have tried setting up project using the latest zuul version 2.3.0 and zuul-example and got some error when run,

Here is the error that I got:

2021-06-10 10:29:12,013 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] REGISTERED
2021-06-10 10:29:12,014 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] ACTIVE
2021-06-10 10:29:12,015 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] USER_EVENT: com.netflix.netty.common.HttpLifecycleChannelHandler$StartEvent@1d64b126
2021-06-10 10:29:12,015 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] READ: DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
GET /example HTTP/1.1
Host: localhost:8887
User-Agent: curl/7.77.0
Accept: */*
2021-06-10 10:29:14,493 ERROR com.netflix.zuul.filters.endpoint.ProxyEndpoint [Salamander-ClientToZuulWorker-1] Error while connecting to origin, UUID {} a67f7871-d63f-43b4-bb7b-2f03863e254a
java.lang.ClassCastException: com.netflix.loadbalancer.Server cannot be cast to com.netflix.niws.loadbalancer.DiscoveryEnabledServer
    at com.netflix.zuul.discovery.DynamicServerResolver.resolve(DynamicServerResolver.java:55) ~[zuul-discovery-2.3.0.jar:2.3.0]
    at com.netflix.zuul.discovery.DynamicServerResolver.resolve(DynamicServerResolver.java:41) ~[zuul-discovery-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.connectionpool.DefaultClientChannelManager.acquire(DefaultClientChannelManager.java:328) ~[zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.origins.BasicNettyOrigin.connectToOrigin(BasicNettyOrigin.java:122) ~[zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.filters.endpoint.ProxyEndpoint.proxyRequestToOrigin(ProxyEndpoint.java:423) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.filters.endpoint.ProxyEndpoint.apply(ProxyEndpoint.java:297) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.filters.endpoint.ProxyEndpoint.apply(ProxyEndpoint.java:121) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.BaseZuulFilterRunner.filter(BaseZuulFilterRunner.java:221) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulEndPointRunner.filter(ZuulEndPointRunner.java:95) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulEndPointRunner.filter(ZuulEndPointRunner.java:51) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.BaseZuulFilterRunner.invokeNextStage(BaseZuulFilterRunner.java:144) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulFilterChainRunner.runFilters(ZuulFilterChainRunner.java:88) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulFilterChainRunner.filter(ZuulFilterChainRunner.java:56) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulFilterChainHandler.channelRead(ZuulFilterChainHandler.java:81) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.zuul.netty.server.ClientRequestReceiver.channelReadInternal(ClientRequestReceiver.java:168) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.server.ClientRequestReceiver.channelRead(ClientRequestReceiver.java:115) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:271) [netty-handler-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.proxyprotocol.StripUntrustedProxyHeadersHandler.channelRead(StripUntrustedProxyHeadersHandler.java:93) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.accesslog.AccessLogChannelHandler$AccessLogInboundChannelHandler.channelRead(AccessLogChannelHandler.java:71) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.metrics.HttpBodySizeRecordingChannelHandler$InboundChannelHandler.channelRead(HttpBodySizeRecordingChannelHandler.java:85) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.HttpServerLifecycleChannelHandler$HttpServerLifecycleInboundChannelHandler.channelRead(HttpServerLifecycleChannelHandler.java:43) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.HttpRequestReadTimeoutHandler.channelRead(HttpRequestReadTimeoutHandler.java:78) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.zuul.netty.insights.PassportStateHttpServerHandler$InboundHandler.channelRead(PassportStateHttpServerHandler.java:70) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-codec-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-codec-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.throttle.MaxInboundConnectionsHandler.channelRead(MaxInboundConnectionsHandler.java:83) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.proxyprotocol.ElbProxyProtocolChannelHandler.channelRead(ElbProxyProtocolChannelHandler.java:62) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [netty-handler-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.63.Final.jar:4.1.63.Final]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
2021-06-10 10:29:14,497 WARN  com.netflix.zuul.filters.endpoint.ProxyEndpoint [Salamander-ClientToZuulWorker-1] FAILURE_LOCAL, origin = OriginName{niwsClientName='example', target='example', authority='example', authorityTrusted=false}, origin channel info = 
java.lang.ClassCastException: com.netflix.loadbalancer.Server cannot be cast to com.netflix.niws.loadbalancer.DiscoveryEnabledServer
    at com.netflix.zuul.discovery.DynamicServerResolver.resolve(DynamicServerResolver.java:55) ~[zuul-discovery-2.3.0.jar:2.3.0]
    at com.netflix.zuul.discovery.DynamicServerResolver.resolve(DynamicServerResolver.java:41) ~[zuul-discovery-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.connectionpool.DefaultClientChannelManager.acquire(DefaultClientChannelManager.java:328) ~[zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.origins.BasicNettyOrigin.connectToOrigin(BasicNettyOrigin.java:122) ~[zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.filters.endpoint.ProxyEndpoint.proxyRequestToOrigin(ProxyEndpoint.java:423) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.filters.endpoint.ProxyEndpoint.apply(ProxyEndpoint.java:297) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.filters.endpoint.ProxyEndpoint.apply(ProxyEndpoint.java:121) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.BaseZuulFilterRunner.filter(BaseZuulFilterRunner.java:221) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulEndPointRunner.filter(ZuulEndPointRunner.java:95) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulEndPointRunner.filter(ZuulEndPointRunner.java:51) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.BaseZuulFilterRunner.invokeNextStage(BaseZuulFilterRunner.java:144) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulFilterChainRunner.runFilters(ZuulFilterChainRunner.java:88) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulFilterChainRunner.filter(ZuulFilterChainRunner.java:56) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.filter.ZuulFilterChainHandler.channelRead(ZuulFilterChainHandler.java:81) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.zuul.netty.server.ClientRequestReceiver.channelReadInternal(ClientRequestReceiver.java:168) [zuul-core-2.3.0.jar:2.3.0]
    at com.netflix.zuul.netty.server.ClientRequestReceiver.channelRead(ClientRequestReceiver.java:115) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:271) [netty-handler-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.proxyprotocol.StripUntrustedProxyHeadersHandler.channelRead(StripUntrustedProxyHeadersHandler.java:93) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.accesslog.AccessLogChannelHandler$AccessLogInboundChannelHandler.channelRead(AccessLogChannelHandler.java:71) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.metrics.HttpBodySizeRecordingChannelHandler$InboundChannelHandler.channelRead(HttpBodySizeRecordingChannelHandler.java:85) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.HttpServerLifecycleChannelHandler$HttpServerLifecycleInboundChannelHandler.channelRead(HttpServerLifecycleChannelHandler.java:43) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.HttpRequestReadTimeoutHandler.channelRead(HttpRequestReadTimeoutHandler.java:78) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.zuul.netty.insights.PassportStateHttpServerHandler$InboundHandler.channelRead(PassportStateHttpServerHandler.java:70) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-codec-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-codec-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.throttle.MaxInboundConnectionsHandler.channelRead(MaxInboundConnectionsHandler.java:83) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at com.netflix.netty.common.proxyprotocol.ElbProxyProtocolChannelHandler.channelRead(ElbProxyProtocolChannelHandler.java:62) [zuul-core-2.3.0.jar:2.3.0]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [netty-handler-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.63.Final.jar:4.1.63.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.63.Final.jar:4.1.63.Final]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
2021-06-10 10:29:14,501 WARN  com.netflix.zuul.netty.server.ClientResponseWriter [Salamander-ClientToZuulWorker-1] Writing response to client channel before have received the LastContent of request! uri=http://localhost:8887/example, method=get, clientip=0:0:0:0:0:0:0:1, Channel: [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042], active=true, open=true, registered=true, writable=true, id=72396c28, Passport: CurrentPassport {start_ms=1623295752014, [+0=SERVER_CH_ACTIVE, +977041=IN_REQ_HEADERS_RECEIVED, +1393605=FILTERS_INBOUND_START, +1646898=FILTERS_INBOUND_END, +2487748390=FILTERS_OUTBOUND_START, +2487822400=FILTERS_OUTBOUND_END, +2487916792=NOW]}
2021-06-10 10:29:14,502 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] WRITE: DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 500 Internal Server Error
transfer-encoding: chunked
Connection: close
2021-06-10 10:29:14,502 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] WRITE, DefaultLastHttpContent(data: UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf(ridx: 0, widx: 0, cap: 0), decoderResult: success), 0B
2021-06-10 10:29:14,502 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] FLUSH
2021-06-10 10:29:14,503 INFO  ACCESS [Salamander-ClientToZuulWorker-1] 2021-06-10T10:29:12.015  0:0:0:0:0:0:0:1 8887    GET /example    500 2488039 -   a67f7871-d63f-43b4-bb7b-2f03863e254a    -   "localhost:8887"    "-" "-" "-" "-" "curl/7.77.0"   "-" "-" "-"
2021-06-10 10:29:14,503 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] USER_EVENT: com.netflix.netty.common.HttpLifecycleChannelHandler$CompleteEvent@697465be
2021-06-10 10:29:14,503 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] CLOSE
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] READ, EmptyLastHttpContent, 0B
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] READ COMPLETE
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] INACTIVE
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] CLOSE
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] UNREGISTERED

Bootstrap.java

public class Bootstrap {

    public static void main(String[] args) {
        new Bootstrap().start();
    }

    public void start() {
        System.out.println("Zuul Sample: starting up.");
        long startTime = System.currentTimeMillis();
        int exitCode = 0;

        Server server = null;

        try {
            Injector injector = Guice.createInjector(new ZuulSampleModule());
            BaseServerStartup serverStartup = injector.getInstance(BaseServerStartup.class);
            server = serverStartup.server();

            long startupDuration = System.currentTimeMillis() - startTime;
            System.out.println("Zuul Sample: finished startup. Duration = " + startupDuration + " ms");

            server.start();
            server.awaitTermination();
        }
        catch (Throwable t) {
            t.printStackTrace();
            System.err.println("###############");
            System.err.println("Zuul Sample: initialization failed. Forcing shutdown now.");
            System.err.println("###############");
            exitCode = 1;
        }
        finally {
            // server shutdown
            if (server != null) server.stop();

            System.exit(exitCode);
        }
    }
}

SampleServerStartup.java


@Singleton
public class SampleServerStartup extends BaseServerStartup {

    enum ServerType {
        HTTP,
        HTTP2,
        HTTP_MUTUAL_TLS,
    }

    private static final String[] WWW_PROTOCOLS = new String[]{"TLSv1.2", "TLSv1.1", "TLSv1", "SSLv3"};
    private static final ServerType SERVER_TYPE = ServerType.HTTP;

    @Inject
    public SampleServerStartup(ServerStatusManager serverStatusManager, FilterLoader filterLoader,
                               SessionContextDecorator sessionCtxDecorator, FilterUsageNotifier usageNotifier,
                               RequestCompleteHandler reqCompleteHandler, Registry registry,
                               DirectMemoryMonitor directMemoryMonitor, EventLoopGroupMetrics eventLoopGroupMetrics,
                               ApplicationInfoManager applicationInfoManager,
                               AccessLogPublisher accessLogPublisher) {
        super(serverStatusManager, filterLoader, sessionCtxDecorator, usageNotifier, reqCompleteHandler, registry,
                directMemoryMonitor, eventLoopGroupMetrics, null, applicationInfoManager,
                accessLogPublisher);
    }

    @Override
    protected Map<NamedSocketAddress, ChannelInitializer<?>> chooseAddrsAndChannels(ChannelGroup clientChannels) {
        Map<NamedSocketAddress, ChannelInitializer<?>> addrsToChannels = new HashMap<>();
        SocketAddress sockAddr;
        String metricId;
        {
            @Deprecated
            int port = new DynamicIntProperty("zuul.server.port.main", 8887).get();
            sockAddr = new SocketAddressProperty("zuul.server.addr.main", "=" + port).getValue();
            if (sockAddr instanceof InetSocketAddress) {
                metricId = String.valueOf(((InetSocketAddress) sockAddr).getPort());
            } else {
                // Just pick something.   This would likely be a UDS addr or a LocalChannel addr.
                metricId = sockAddr.toString();
            }
        }

        String mainListenAddressName = "main";
        ServerSslConfig sslConfig;
        ChannelConfig channelConfig = defaultChannelConfig(mainListenAddressName);
        ChannelConfig channelDependencies = defaultChannelDependencies(mainListenAddressName);

        /* These settings may need to be tweaked depending if you're running behind an ELB HTTP listener, TCP listener,
         * or directly on the internet.
         */
        switch (SERVER_TYPE) {
            /* The below settings can be used when running behind an ELB HTTP listener that terminates SSL for you
             * and passes XFF headers.
             */
            case HTTP:
                channelConfig.set(CommonChannelConfigKeys.allowProxyHeadersWhen, StripUntrustedProxyHeadersHandler.AllowWhen.ALWAYS);
                channelConfig.set(CommonChannelConfigKeys.preferProxyProtocolForClientIp, false);
                channelConfig.set(CommonChannelConfigKeys.isSSlFromIntermediary, false);
                channelConfig.set(CommonChannelConfigKeys.withProxyProtocol, false);

                addrsToChannels.put(
                        new NamedSocketAddress("http", sockAddr),
                        new ZuulServerChannelInitializer(
                                metricId, channelConfig, channelDependencies, clientChannels));
                logAddrConfigured(sockAddr);
                break;

            /* The below settings can be used when running behind an ELB TCP listener with proxy protocol, terminating
             * SSL in Zuul.
             */
            case HTTP2:
                sslConfig = ServerSslConfig.withDefaultCiphers(
                        loadFromResources("server.cert"),
                        loadFromResources("server.key"),
                        WWW_PROTOCOLS);

                channelConfig.set(CommonChannelConfigKeys.allowProxyHeadersWhen, StripUntrustedProxyHeadersHandler.AllowWhen.NEVER);
                channelConfig.set(CommonChannelConfigKeys.preferProxyProtocolForClientIp, true);
                channelConfig.set(CommonChannelConfigKeys.isSSlFromIntermediary, false);
                channelConfig.set(CommonChannelConfigKeys.serverSslConfig, sslConfig);
                channelConfig.set(CommonChannelConfigKeys.sslContextFactory, new BaseSslContextFactory(registry, sslConfig));

                addHttp2DefaultConfig(channelConfig, mainListenAddressName);

                addrsToChannels.put(
                        new NamedSocketAddress("http2", sockAddr),
                        new Http2SslChannelInitializer(
                                metricId, channelConfig, channelDependencies, clientChannels));
                logAddrConfigured(sockAddr, sslConfig);
                break;

            /* The below settings can be used when running behind an ELB TCP listener with proxy protocol, terminating
             * SSL in Zuul.
             *
             * Can be tested using certs in resources directory:
             *  curl https://localhost:7001/test -vk --cert src/main/resources/ssl/client.cert:zuul123 --key src/main/resources/ssl/client.key
             */
            case HTTP_MUTUAL_TLS:
                sslConfig = new ServerSslConfig(
                        WWW_PROTOCOLS,
                        ServerSslConfig.getDefaultCiphers(),
                        loadFromResources("server.cert"),
                        loadFromResources("server.key"),
                        ClientAuth.REQUIRE,
                        loadFromResources("truststore.jks"),
                        loadFromResources("truststore.key"),
                        false);

                channelConfig.set(CommonChannelConfigKeys.allowProxyHeadersWhen, StripUntrustedProxyHeadersHandler.AllowWhen.NEVER);
                channelConfig.set(CommonChannelConfigKeys.preferProxyProtocolForClientIp, true);
                channelConfig.set(CommonChannelConfigKeys.isSSlFromIntermediary, false);
                channelConfig.set(CommonChannelConfigKeys.withProxyProtocol, true);
                channelConfig.set(CommonChannelConfigKeys.serverSslConfig, sslConfig);
                channelConfig.set(CommonChannelConfigKeys.sslContextFactory, new BaseSslContextFactory(registry, sslConfig));

                addrsToChannels.put(
                        new NamedSocketAddress("http_mtls", sockAddr),
                        new Http1MutualSslChannelInitializer(
                                metricId, channelConfig, channelDependencies, clientChannels));
                logAddrConfigured(sockAddr, sslConfig);
                break;
        }

        return Collections.unmodifiableMap(addrsToChannels);
    }

    private File loadFromResources(String s) {
        return new File(ClassLoader.getSystemResource("ssl/" + s).getFile());
    }
}

ZuulSampleModule.java

public class ZuulSampleModule extends AbstractModule {
    @Override
    protected void configure() {
        try {
            ConfigurationManager.loadCascadedPropertiesFromResources("application");
        } catch (Exception ex) {
            throw new RuntimeException("Error loading configuration: " + ex.getMessage(), ex);
        }

        bind(AbstractConfiguration.class).toInstance(ConfigurationManager.getConfigInstance());
        bind(DynamicCodeCompiler.class).to(GroovyCompiler.class);
        bind(FilenameFilter.class).to(GroovyFileFilter.class);

//        install(new EurekaModule());

        // sample specific bindings
        bind(BaseServerStartup.class).to(SampleServerStartup.class);

        // use provided basic netty origin manager
        bind(OriginManager.class).to(BasicNettyOriginManager.class);

        // zuul filter loading
        install(new ZuulFiltersModule());
        bind(FilterLoader.class).to(DynamicFilterLoader.class);
        bind(FilterRegistry.class).to(MutableFilterRegistry.class);
        bind(FilterFileManager.class).asEagerSingleton();

        // general server bindings
        bind(ServerStatusManager.class); // health/discovery status
        bind(SessionContextDecorator.class).to(ZuulSessionContextDecorator.class); // decorate new sessions when requests come in
        bind(Registry.class).to(DefaultRegistry.class); // atlas metrics registry
        bind(RequestCompleteHandler.class).to(BasicRequestCompleteHandler.class); // metrics post-request completion
        bind(RequestMetricsPublisher.class).to(BasicRequestMetricsPublisher.class); // timings publisher

        // access logger, including request ID generator
        bind(AccessLogPublisher.class).toInstance(new AccessLogPublisher("ACCESS",
                (channel, httpRequest) -> ClientRequestReceiver.getRequestFromChannel(channel).getContext().getUUID()));
    }
}

application.properties

zuul.filters.root=src/main/groovy/zuul2/filters
zuul.filters.locations=${zuul.filters.root}/inbound,${zuul.filters.root}/outbound,${zuul.filters.root}/endpoint
zuul.filters.packages=com.netflix.zuul.filters.common

example.ribbon.listOfServers=example.com:80
example.ribbon.client.NIWSServerListClassName=com.netflix.loadbalancer.ConfigurationBasedServerList

eureka.shouldFetchRegistry=false
eureka.validateInstanceId=false

I have tried search everywhere but couldn't find any solution. Any idea how to make it working please?

kirillovsky commented 3 years ago

I faced with same error. Does current zuul version zuul load balancing backends works without Eureka?

YumiSuki commented 3 years ago

@kirillovsky it should work without any problem. I saw there is a discussion at Routing without using Eureka service discovery

kirillovsky commented 3 years ago

@YumiSuki , yes, it should work, but actually (in zuul 2.3.0) looks like it doesn't work. But it worked fine without eurika in 2.1.6 (i checked). And i faced with this error exactly after update zuul from 2.1.6 to 2.3.0

kirillovsky commented 3 years ago

@carl-mastrangelo @artgon @argha-c Anyone help please us?

argha-c commented 3 years ago

I believe the issue is with using ConfigurationBasedServerList as the ribbon load balancer. The 2.3.0 refactor to decouple Zuul's discovery from ribbon's load balancing, chooses to enforces a stricter type constraint.

If you intend to use the configuration based props file, suggested workaround would be to implement an adapter similar to com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList, with the server list supplied by the config file.

Sorry about the inconvenience.

kirillovsky commented 3 years ago

@argha-c thanks a lot for the answer. I will try to use this workaround

mohammadrafigh commented 3 years ago

@argha-c Thanks. Replacing ConfigurationBasedServerList with a custom adapter worked.

github-actions[bot] commented 3 months ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

github-actions[bot] commented 3 months ago

This issue was closed because it has been stalled for 7 days with no activity.