A simple Round Robin Load Balancer
It's a simple load balancer implementing the Round Robin algorithm. This toy project was created because I wanted to have something that's built in Go on my GitHub. I use this article as a reference, so some parts of the code might look similar, but I assure you I use my own brain most of the time and not just blindly copy what the author wrote.
I have some interesting ideas on how to develop this project further so as to make it my software engineering playground, some of which you can find in the issues page. I don't know if I'm gonna implement those in the future, I might though... probably, when I'm bored :p
For now, it has basic functionalities such as:
- Route traffic (I mean, of course)
- Health checks (passive and active)
- Route traffic only to healthy backends
- CLI-based interface
Not very impressive right, but I'm proud of it, lol.
- Download the latest binary from the release page
- Run it
chmod +x ./gorrola ./gorrola run --backends <your backends URLs here, separated by comma>
- Gorrola by defaults will be served at port 3000
- Clone the repo
- Build the binary
go build
- Run the example backends
chmod +x scripts/up-backends.sh ./scripts/up-backends.sh
- Run the binary
./gorrola run --backends "http://localhost:8080,http://localhost:8081,http://localhost:8082" -p 3001
- Gorrola will be served at port 3001
I don't provide any docker image at the moment.
Distributed under the MIT License. See LICENSE for more information.