The load balancer 120 receives TCP requests from clients 110 and allocates the requests among a server pool 139 according to a scheduling algorithm. Although only one load balancer 120 is shown in FIG. 1 for simplicity, any number of load balancers 120 can be present in the computing environment. In one implementation, each load balancer 120 has a separate server pool 139, whereas in other implementations two or more load balancers share a common server pool 139. Components of the load balancer 120 are described in greater detail with reference to FIG. 2, and the operation of the load balancer 120 in distributing requests will be described with reference to FIG. 4.
FIG. 2 is a block diagram of a load balancer 120 in accordance with an embodiment. The load balancer 120 includes a client interaction module 121, a scheduling module 122 and a server interaction module 123. FIG. 4 is an interaction diagram illustrating a method of distributing requests among servers 130A-D in accordance with an embodiment. Referring to both FIGS. 2 and 4, the client interaction module 121 of the load balancer 120 receives TCP requests 401 from clients 110. The client interaction module 121 also sends handshake information 402 to the client 110 to acknowledge the TCP request and passes the TCP requests to a scheduling module 122 of the load balancer.