Skip to content

geneanet/mlb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

306 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

Releases

Packages

Used by

Contributors

Languages