Balancer Plugin¶
The balancer balances requests across multiple origin servers. To use this plugin, configure it in a remap.config rule, specifying a balancing policy and a set of origin servers. For example:
map http://foo.com http://foo.com \
@plugin=balancer.so @pparam=--policy=hash,url @pparam=one.bar.com @pparam=two.bar.com
The replacement URL in the mapping rule is not used. The argument to the --policy option is a comma-separated list of keywords. The first keyword is the name of a balancing policy. The subsequent keywords are used to refine the requested policy.
Hash Balancing Policy¶
The hash balancing policy performs a consistent hash across the set of origins. This minimizes the number of hash entries that must be moved when the set of origin servers changes. An optional list of hash fields follows the hash keyword. Each specified hash field is hashed to select an outbound origin server.
The following fields can be supplied to the hash:
- key
- The request cache key. Note that the cache key will only be set if you have already chained a plugin that sets a custom cache key.
- url
- The request URL. This is the default hash field that is used if no other fields are specified.
- srcaddr
- The source IP address of the request.
Round Robin Balancing Policy¶
The roundrobin balancing policy simply allocates requests to origin servers in order. Over time, the number of requests received by each origin should be approximately the same.
Health Checking¶
The balancer plugin does not check the health of the origin servers, however the plugin is fully reloadable so health checking is usualy simple to implement. Most production environments already have mechanisms to check service health. It is recommended that you write a simple script to monitor this information and rewrite remap.config when appropriate. Running traffic_line -x will reload the balancer plugin with the new set of origin servers.