only for RuBoard - do not distribute or recompile |
I covered load sharing in Chapter 9. There are several ways to split the load between multiple servers:
This brute force approach relies on DNS servers to randomize IP addresses in lookup replies. It is somewhat inefficient because requests are randomly assigned to individual proxies.
These products usually have a number of balancing algorithms available (number of connections, response time, etc.). Alternatively, requests can be partitioned by origin server IP address.
CARP partitions requests with a sophisticated algorithm that allows members to be weighted unequally. It also minimizes the disturbance to the partitioning when members are added or removed.
These protocols are only used between caches. They can be used to maximize cache hits within a cluster. This is particularly useful if clients send requests to caches randomly, as with DNS round-robin .
In Cisco's WCCP implementation, the master cache builds an origin server-based partition and sends it to the router. The router uses the partition to divide the load among all member caches.
Given these choices, which one should you use? If you're comfortable with traffic interception, then layer four switches and WCCP are good options. Between the two, it depends on what type and manufacturer of equipment you are familiar with. Organizations that already have an investment in Cisco routers are likely to use WCCP. Some organizations prefer the features offered by layer four switches.
Without traffic interception, you'll probably have to use DNS round-robin or CARP. To implement CARP, you'll need either CARP-aware user - agents or a hierarchy of caches. Perhaps the easiest configuration is DNS round-robin for cache selection, with ICP/HTCP between proxies to maximize cache hits.
only for RuBoard - do not distribute or recompile |