I'm developing a microservice system. I have a discovery service (Eureka) for all my services and an API Gateway (Zuul) to call each service via an URL.
My problem: How can I assure that a service call via my API Gateway is high available?
If the gateway dies, my services aren't callable anymore. I could start multiple gateways but then the client needs to know which gateway to call. Wll than I need a load balancer between the client and my gateway. But what happens if the load balancer dies?
I could set up a second system and route a DNS entry to both systems but still, a broken load balancer could break one complete system?
So, is there a good solution to make load balancers or a api gateway high available? Or will there ever be a single point of failure per system?