Conventionally, there are two methods to route requests to replicated components:
-
Load balancing: A load balancer sits in-between the client and the server instances, intercepting the requests and distributing them among all instances:
The way requests are distributed depends on the load balancing algorithm used. Apart from "random" selection, the simplest algorithm is the round-robin algorithm. This is where requests are sequentially routed to each instance in order. For example, if there are two backend servers, A and B, the first request will be routed to A, the second to B, the third back to A, the fourth ...