This is an implementation of extra algorithms for load-balancing in Nginx.
By default Nginx provides the following algorithms:
-
weighted round-robin
-
IP hash
-
least connections
Here we implemented other algorithms.
This type of load balancing consists in hashing the request URI, getting the first character of the hash and routing to the upstream that corresponds to this character (an hexadecimal digit).
The current implementation came from this Nginx mailing list discussion.
-
Sharded hashing using Murmur3 hashing instead of MD5.
-
Consistent hashing using the Ketama library.