gobetween is a modern and minimalistic L4 load balancer and reverse proxy for the cloud era.
It aims to provide fast, flexible and full-featured load balancing solution for modern microservice architectures.
gobetween is free and open source software.
- Fast L4 Load Balancing
- TCP – with optional The PROXY Protocol support.
- TLS – TLS Termination + ACME & TLS Proxy.
- UDP – with optional virtual sessions and transparent mode.
- Clear & Flexible Configuration with TOML or JSON:
- File – read configuration from the file.
- URL – query URL by HTTP and get configuration from the response body.
- Consul – query Consul key-value storage API for configuration.
- Management REST API:
- System Information – general server info.
- Configuration – dump current config.
- Servers – list, create & delete.
- Stats & Metrics – for servers and backends including rx/tx, status, active connections & etc.
- Static – hardcode backends list in the config file.
- Docker – query backends from Docker / Swarm API filtered by label.
- Exec – execute an arbitrary program and get backends from its stdout.
- JSON – query arbitrary http url and pick backends from response json (of any structure).
- Plaintext – query arbitrary http and parse backends from response text with customized regexp.
- SRV – query DNS server and get backends from SRV records.
- Consul – query Consul Services API for backends.
- LXD – query backends from LXD.
- Ping – simple TCP ping healthcheck.
- Exec – execute arbitrary program passing host & port as options, and read healthcheck status from the stdout.
- Probe – send specific bytes to backend (udp, tcp or tls) and expect a correct answer (bytes or regexp).
- Balancing Strategies (with SNI support):
- Weight – select backend from pool based relative weights of backends.
- Roundrobin – simple elect backend from pool in circular order.
- Iphash – route client to the same backend based on client ip hash.
- Iphash1 – same as iphash but backend removal consistent (clients remain connecting to the same backend, even if some other backends down).
- Leastconn – select backend with least active connections.
- Leastbandwidth – backends with least bandwidth.
- Integrates seamlessly with Docker and with any custom system (thanks to Exec discovery and healthchecks).
- Single binary distribution.
|Want to find more awesome open source software? Check out our award winning open source software directory featuring more than 20,000 open source apps.|