0

When I connect Zuul to Eureka I get the following error:

 [err] 42622092 [pool-2-thread-1] ERROR com.netflix.discovery.DiscoveryClient - Can't get a response from https://sd-eureka-01.th.net:8443/eureka/v2/apps/ZUUL/x.x.x.x
    Can't contact any eureka nodes - possibly a security group issue?
    [err] com.sun.jersey.api.client.ClientHandlerException: org.apache.http.NoHttpResponseException: sd-eureka-01.th.net:8443 failed to respond
    [err]   at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)
    [err]   at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)
    [err]   at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:28)
    [err]   at com.sun.jersey.api.client.Client.handle(Client.java:652)
    [err]   at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
    [err]   at com.sun.jersey.api.client.WebResource.put(WebResource.java:213)
    [err]   at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1108)
    [err]   at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1065)
    [err]   at com.netflix.discovery.DiscoveryClient.access$500(DiscoveryClient.java:110)
    [err]   at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1630)
    [err]   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    [err]   at java.util.concurrent.FutureTask.run(FutureTask.java:267)
    [err]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1143)
    [err]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:618)
    [err]   at java.lang.Thread.run(Thread.java:785)
    [err] Caused by:
    [err] org.apache.http.NoHttpResponseException: sd-eureka-01.th.net:8443 failed to respond
    [err]   at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
    [err]   at [internal classes]
    [err]   at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)
    [err]   ... 14 more
    [err] 42622098 [pool-2-thread-1] ERROR com.netflix.discovery.DiscoveryClient - DiscoveryClient_ZUUL/x.x.x.x - was unable to send heartbeat!
    [err] com.sun.jersey.api.client.ClientHandlerException: org.apache.http.NoHttpResponseException: sd-eureka-01.th.net:8443 failed to respond
    [err]   at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187)
    [err]   at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123)
    [err]   at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:28)
    [err]   at com.sun.jersey.api.client.Client.handle(Client.java:652)
    [err]   at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
    [err]   at com.sun.jersey.api.client.WebResource.put(WebResource.java:213)
    [err]   at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1108)
    [err]   at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1065)
    [err]   at com.netflix.discovery.DiscoveryClient.access$500(DiscoveryClient.java:110)
    [err]   at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1630)
    [err]   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    [err]   at java.util.concurrent.FutureTask.run(FutureTask.java:267)
    [err]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1143)
    [err]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:618)
    [err]   at java.lang.Thread.run(Thread.java:785)
    [err] Caused by:
    [err] org.apache.http.NoHttpResponseException: sd-eureka-01.th.net:8443 failed to respond
    [err]   at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
    [err]   at [internal classes]
    [err]   at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173)
    [err]   ... 14 more

However when I check my eureka Sever, I see that Zuul is regularly sending heartbeats to Eureka and its status is shown as up. I am running both Zuul and Eureka on Tomcat. Could this issue be due to the HttpClient closing the connection after some amount of idle time, but Zuul isn't aware of it. And once it gets the error, it creates a new connection and sends a request again.

Zuul sends heartbeats to Eureka every 30 seconds. Is it possible to change some setting on Tomcat which doesn't close the connection?

user1692342
  • 5,007
  • 11
  • 69
  • 128
  • Are you sure that the heartbeat is correct ? I see in the stacktrace: ERROR com.netflix.discovery.DiscoveryClient - DiscoveryClient_ZUUL/x.x.x.x - was unable to send heartbeat! – JFPicard Jan 13 '17 at 16:00
  • @JFPicard when I check the last updated heartbeat received on eureka, it always shows within a 30 second period from current time. So I don't think zuul stops sending heartbeats after this error – user1692342 Jan 13 '17 at 16:02
  • Possible duplicate of [Apache HttpClient Interim Error: NoHttpResponseException](http://stackoverflow.com/questions/10558791/apache-httpclient-interim-error-nohttpresponseexception) – JFPicard Jan 13 '17 at 16:06

0 Answers0