Skip to content

geneanet/mlb

Repository files navigation

MLB - Modular Load Balancer

MLB (Modular Load Balancer) is a high-performance, flexible, and modular L4/L7 load-balancer written in Go. It is designed to be easily extensible through its modular architecture and provides advanced features like zero-downtime restarts and deep integration with service discovery tools like Consul.

Key Features

  • Multi-protocol Support: TCP, Redis, and Memcache.
  • Dynamic Backend Discovery: Support for Consul and static host lists.
  • Advanced Health Checking: Native health checks for MySQL and Redis.
  • Flexible Filtering: Filter and sort backends based on rich metadata using HCL expressions.
  • Load Balancing: Smooth Weighted Round-Robin (SWRR) and Weighted Least Connections (WLC) with dynamic weight resolution.
  • Observability: Prometheus metrics and a built-in topology dashboard.
  • Performance: Designed for high throughput with connection pooling and efficient protocol handling.

Documentation

Comprehensive documentation for MLB is available in the docs folder:

Detailed module documentation:

Quickstart

  1. Build MLB: go build -o mlb .
  2. Validate: ./mlb -config config.example.hcl -configtest
  3. Run: ./mlb -config config.example.hcl

For production use with zero-downtime reloads, see the Operations Guide.

License

MLB is released under the Mozilla Public License Version 2.0. See LICENSE for details.

About

Modular Load Balancer

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages