Skip to content

A robust HTTP load balancer and reverse proxy written from scratch in Golang.

License

Notifications You must be signed in to change notification settings

ramchaik/hermes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hermes

A simple load balancer written in Golang.

Uses Round Robin for load distribution.

Running the load balancer

./hermes \
    --port 9000 \
    --services https://localhost:9001,https://localhost:9002,https://localhost:9003 

TODO:

  • Implement weighted round-robin/least connections

Round Robin - Distribute load equally, assumes all backends have the same processing power

Weighted Round Robin - Additional weights can be given considering the backend's processing power

Least Connections - Load is distributed to the servers with least active connections

  • Add configuration file support
  • Use a heap for sort out alive backends to reduce search surface
  • Collect statistics