/txLoadBalancer

A Twisted-Based TCP Load Balancer

Primary LanguagePythonOtherNOASSERTION

Introduction

resources/logos/txLoadBalancer_lg.png

This is a pure python 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 replaced all threading, asyncore, and admin UI code with the Twisted-based analogs. It also significantly reorganized the API and provided many new features.

Features

  • 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.