com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient

寻视线上环境日志时,发现了如下错误,查了一下,得知可能是eureka服务注册中心不可用导致的,

不过检查了一下服务注册中心项目,发现是正常运行的,且这个错误日志只是偶尔出现,所以就有些困惑了。

排查过程:

1,然后我找到报错的这个项目的线上环境关于eureka的配置,然后对其可能注册到的所有eureka注册中心都一一进行访问,发现前两个都是正常可以访问的,正纳闷时,第3个注册中心的ip与端口发现访问不了了,这时就略有所悟,应该是无法通过这个注册中心的地址进行注册了

2,然后打开eureka注册中心项目,查看其对外访问ip与端口,果然只有错误日志项目配置中的前2个ip,第3个ip是没有的,再次验证了问题所在。

解决方案:

方案1,可以将客户端项目中配置的注册中心ip添加到eureka注册中心项目对外访问ip列表中(因为我的项目该ip机器下线,所以不适合我)

方案2,将客户端项目中配置的该ip移除(本人采取的这种方案)

当然为了更高可用,也可以在eureka注册中心项目中添加新的ip,将客户端项目中配置更新旧的ip为新的可用的ip

经验总结:

客户端服务配置的eureka注册中心列表,只要有有个不可用,其它哪怕都可用,也会报如下错误,所以尽量及时清楚不可用的注册中心机器配置

2019-12-06 11:28:02.454 ERROR [DiscoveryClient-HeartbeatExecutor-0] com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient 
- Request execution errorcom.sun.jersey.api.client.ClientHandlerException: 
java.net.ConnectException: Connection refused (Connection refused)                  
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)                 
at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)   
at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27)                   
at com.sun.jersey.api.client.Client.handle(Client.java:652)                 
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)      
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)                 
at com.sun.jersey.api.client.WebResource$Builder.put(WebResource.java:529)                  
at com.netflix.discovery.shared.transport.jersey.AbstractJerseyEurekaHttpClient.sendHeartBeat(AbstractJerseyEurekaHttpClient.java:102)                      
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)                  
at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)                    
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)                      
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)                  
at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.executeOnNewServer(RedirectingEurekaHttpClient.java:118
at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:79)        
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)      
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)          
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:119)           
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)      
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92)          
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)            
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89)      
at com.netflix.discovery.DiscoveryClient.renew(DiscoveryClient.java:824)                 
at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1393)                     
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)                  
at java.util.concurrent.FutureTask.run(FutureTask.java:266)                     
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)                  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)                  
at java.lang.Thread.run(Thread.java:748)                Caused by: java.net.ConnectException: Connection refused (Connection refused)                       
at java.net.PlainSocketImpl.socketConnect(Native Method)           
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)                  
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)                      
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)                       
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)                   
at java.net.Socket.connect(Socket.java:589)                 
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)                        
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)                       
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)            
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134)                  
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)                   
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)                      
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835)                    
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:118)                    
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)            
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)
                      ... 27 common frames omitted

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值