20 lines
1 KiB
Text
20 lines
1 KiB
Text
Pen is a load balancer for "simple" tcp based protocols such as http or
|
|
smtp. It allows several servers to appear as one to the outside and
|
|
automatically detects servers that are down and distributes clients among
|
|
the available servers. This gives high availability and scalable
|
|
performance.
|
|
|
|
The load balancing algorithm keeps track of clients and will try to
|
|
send them back to the server they visited the last time. The client
|
|
table has a number of slots (default 2048, settable through command-line
|
|
arguments). When the table is full, the least recently used one will
|
|
be thrown out to make room for the new one.
|
|
|
|
This is superior to a simple round-robin algorithm, which sends a client
|
|
that connects repeatedly to different servers. Doing so breaks
|
|
applications that maintain state between connections in the server,
|
|
including most modern web applications.
|
|
|
|
When pen detects that a server is unavailable, it scans for another
|
|
starting with the server after the most recently used one. That way
|
|
we get load balancing and "fair" failover for free.
|