In this approach, load balancing is fully distributed, with each client directly responsible for routing requests to an available microservice. Note that in this model each local load balancer handles all traffic for its local instance regardless of which or how many other microservices it communicates with.
This distributed nature adds some complexity to the load balancing system: you need some services discovery, distributed health checking, etc... In some way, it is an extension to the Ambassador pattern that some people recommends for microservices, but with the additional load balancing thing...
You can read more details here















