With the ZLB v1 stable release (October 2011) you have the following algorithm options for configuring delivery requests to your real servers:
– roundrobin – persistence client-time:
An equal balance of traffic to all active real servers, creating session persistence depending on client IP Address. When a new request is received the load balancer core verifies if the client IP has been accessed before doing a check process over a hash table. If the client has been accessed before, the connection is delivered to the same real server. If a new client IP is
requesting a connection, the balancer assigns the next round robin real server, and stores this association for future client requests. The time parameter is used to establish a time limit of “memory” for these IP clients.
– roundrobin – equal sharing:
An equal balance of traffic to all active real servers. This algorithm is like the algorithm explained above, but without client IP “memory”. All requests are processed through the round robin algorithm. Every request is assigned to a different real server equally.
– hash – sticky client:
The Farm will create a hash string for each IP client and send each connection from that hash to the same real server. A hash table is created with the real servers and the requests are assigned through the following algorithm: index = cli % nServers
Where ‘index’ is the index of the real server hash table, ‘cli’ is the integer representation of the IP address and the ‘nServers’ is the number of real servers available. This algorithm is a way to create persistence through the IP address, but it’s valid if you’ve a variety of subnets clients accessing to your service (for example, an international service).
– weight – connection linear dispatching by weight:
Balance connections depending weight value, you have to edit this value for each real server. The requests are delivered through an algorithm to calculate the load of every server using the actual connections to them, and then to apply a linear weight assignation.
– priority – connections to the highest priority available:
Balance all connections to the same highest priority server. If this server is down, the connections switch to the next highest server. With this algorithm you can build an Active-Passive
cluster service with several real servers.