Feb 15, 2010
txLoadBalancer is a pure Python-based TCP load balancer. It takes inbound TCP connections and connects them to one of a number of backend servers.txLoadBalancer is a fork of Anthony Baxter's PythonDirector. It removed all threading and asyncore code and the admin UI with the Twisted-based analogs. It also significantly reorganized the API and provided many new features (see below).Usage $ twistd -noy ./bin/txlb.tacThis will use the default configuration file in ./etc/config.xml; you can edit the .tac file to point to the config you prefer. Be sure to edit the config.xml file to properly reflect your services in need of load-balancing.To enable the admin interface, your config file must have the admin section defined, with the required fields. For an example, be sure to see ./etc/config.xml. For more details, please see the configuration information in the ./doc directory.If you are creating your own script and don't want to use txlb.tac, you can import the application setup functions in txlb.application.If you want to "embed" a load-balancer in your Twisted application, see the example ./bin/txlbWeb.tac.Here are some key features of "txLoadBalancer":· It is a pure-Twisted TCP loadbalancer.· Thanks to Twisted, it's async i/o based, so much less overhead than fork/thread based balancers.· It has multiple scheduling algorithms (random, round robin, leastconns, weighted).
If a server fails to answer, it's removed from the pool - the client that failed to connect gets transparently failed over to a new host.· Provides an optional builtin webserver for a built-in admin UI.· Seperate management timer services that perform such tasks as periodically readding failed hosts to the rotation, updated on-disk config files with changes made to the running server.· A built-in SSH server for managing (and modifying) a running load-balancer instance.· A Twisted API for adding a load-balancing service to your Twisted application without the need to run a separate load-balancer.· The application uses an XML-based configuration file.Requirements:· PythonWhat's New in This Release:· Massive API changes: competely reorganzied the code base.· Integrated patches from Apple's Calendar Server project.· A new API for creating load-balanced services within a Twisted application (without the need to run a separate load-balancingn daemon).· Added support for live interaction with load-balancer via SSH connection to running Python interpretter (Twisted manhole).· The ability to start listening on a new port without restaring the application.· Added a weighted load balance scheduler.