I'm currently having an issue when using Netflix Eureka and Zuul in a Spring Cloud environment using Docker.
My current setup is as follows: 3 Docker containers:
- a Eureka server
- a Zuul server that uses Eureka to map routes to services and load balancing between multiple containers of the same service.
- a service (currently just returning a simple string)
This setup works fine but troubles begin when I start playing with the scaling of the service. When I scale up, Zuul picks up the new servers after 30 seconds. That's fine by me. However, when I take down service containers, calls to Zuul can fail (with a HTTP errorcode 200!) because Zuul still thinks the servers are in the alive pool.
I'm using Spring Boot 1.3.6 and Spring Cloud 1.1.2
My questions:
- Can Zuul be configured to retry calls?
- Is there a way to force Zuul to do a ping to all the servers using a REST call? As far as I can see, there is no Spring Cloud endpoint for this. Posting to /routes doesn't do what I want.
- If that's not possible, can Zuul be configured to actually send something else than a 200 when a server is not responding in time?