Brad Fitzpatrick (brad) wrote,
Brad Fitzpatrick
brad

monobal 0.2

If anybody wants my very immature load balancer written in C#:

http://www.bradfitz.com/share/monobal/monobal-0.2.tar.gz

Now featuring an HTTP header class which parses headers, replaces headers, retrieves headers, etc.

So the load balancer now replaces/sends along the X-Forwarded-For header to the back end, and always does Connection: close, and always does HTTP/1.0 to the backend. (wanting to avoid dealing with chunking for now)

Things to do:

-- support POSTs (only GET works now)
-- limit max incoming header length
-- limit global proxy to client buffer size
-- limit max pending connections
-- limit per-connection proxy to client buffer size
-- wait for bugs.ximian.com and make sure some variation of my socket patch gets committed
-- make the load balancer be more of a usable object itself, letting clients set its listening port, backend node selector manager, limits, etc.
-- make a front-end which parses command-line args and inits the load balancer.
-- write a node selector to listen to LJ's broadcast messages and do random weighted selections.
-- write some stupid node selector subclasses as demos
-- proper C#-style docs
-- timeouts everywhere
-- management/stats port.
-- tons of testing
-- put it in limited production somehow and make it take a beating. :-)
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 9 comments