Download GLB (Galera Load Balancer)
glb is a simple user-space TCP connection balancer made with scalability and performance in mind. It was inspired by pen, but unlike pen its functionality is limited only to balancing generic TCP connections.
- list of backend servers is configurable in runtime.
- supports server "draining", i.e. does not allocate new connections to server, but does not kill existing ones, waiting for them to end gracefully.
- on Linux 2.6 and higher glb uses epoll API for ultimate performance.
- glb is multithreaded, so it can utilize multiple CPU cores. In fact even on a single core CPU using several threads can significantly improve performance when using poll()-based IO.
- features 5 balancing policies: "least connected" (default), "round-robin", "single", "random" and "source tracking". See README for details.
- can monitor the health of destinations by polling using service-specific scripts and adjust routing table automatically. In Galera cluster it also can (optionally) discover newly added nodes and take them into use.
- libglb.so shared library that can add balancing capability to any Linux client application without recompilation or relinking by overloading standard libc connect() call in runtime. All the rest of communication then happens directly between client and server. No other client functionality is affected. See README
glb is beta software. That is it seems to be feature complete, but was not tested extensively. It was developed and tested on Linux, but theoretically should work on any system that has POSIX threads and poll().
License: GPLv2. Warranty: none whatsoever.