Search code examples
dockernetflix-zuulnetflix-eureka

Eureka ZUUL "Forwarding error" when run through Docker


I am using docker-compose containers for deploying 3 projects: Eureka, Zuul Service and application. Below are the configurations for these projects:

Eureka:

eureka.client.registerWithEureka = false
eureka.client.fetchRegistry= false
eureka.client.serviceUrl.defaultZone= http://${EUREKA_HOST}:8070/eureka/
eureka.instance.hostname= ${EUREKA_HOST}

Zuul:

eureka:
  client:
    serviceUrl:
      defaultZone: http://${EUREKA_HOST}:8070/eureka/
  instance:
    hostname: ${EUREKA_HOST}

Application

eureka.client.registerWithEureka = true
eureka.client.fetchRegistry= true
eureka.client.serviceUrl.defaultZone= http://${EUREKA_HOST}:8070/eureka/
eureka.instance.hostname= ${EUREKA_HOST}

When i am doing a docker-compose up it is spinning up the containers properly with no errors. However when i call a REST endpoint using API gateway i am getting the error: com.netflix.zuul.exception.ZuulException: Forwarding error

zuul-service | ]}ServerList:org.springframework.cloud.netflix.ribbon.eureka.DomainExtractingServerList@75584e66
zuul-service | 2018-03-21 11:33:31.383  WARN 1 --- [nio-8069-exec-3] o.s.c.n.z.filters.post.SendErrorFilter   : Error during filtering
zuul-service | 
zuul-service | com.netflix.zuul.exception.ZuulException: Forwarding error
zuul-service |  at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:190) ~[spring-cloud-netflix-zuul-2.0.0.M5.jar!/:2.0.0.M5]
zuul-service |  at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:165) ~[spring-cloud-netflix-zuul-2.0.0.M5.jar!/:2.0.0.M5]
zuul-service |  at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:112) ~[spring-cloud-netflix-zuul-2.0.0.M5.jar!/:2.0.0.M5]
zuul-service |  at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112) ~[zuul-core-1.3.0.jar!/:1.3.0]
zuul-service |  at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:193) ~[zuul-core-1.3.0.jar!/:1.3.0]

Solution

  • the problem was in my user-service app properties:

    eureka.client.registerWithEureka = true
    eureka.client.fetchRegistry= true
    eureka.client.serviceUrl.defaultZone= http://${EUREKA_HOST}:8070/eureka/
    eureka.instance.hostname= ${EUREKA_HOST}
    

    which should ideally have been:

    eureka.client.registerWithEureka = true
    eureka.client.fetchRegistry= true
    eureka.client.serviceUrl.defaultZone= http://${EUREKA_HOST}:8070/eureka/
    eureka.instance.hostname= user-service