Skip to content

Basic load-balancing in GOlang to analyse the performance of modern routing algorithms.

Notifications You must be signed in to change notification settings

It-is-Dan/RapidBalance

Repository files navigation

Final Year Project

A Performance Analysis of Modern Routing Algorithms Used in Content Delivery.


Project Overview

RapidBalance is a software-defined load balancing system with two configurable algorithms, round-robin and least-connection.

PLEASE NOTE: This software was created as part of a research project and as a result isnt ready for live production.

Getting Started

By default, the configuration is setup to use the RoundRobin algorithm, run on port 80 and route to the local flask servers.

Requirements

  • GO 1.17
  • Python 3.10.4

Running The Balancer

The easiest way to get up and running is by using VS Code, you will be able to run the "HTTP-server" file and the software will run as intended. Should you wish to run the software in a command terminal, you will need to build the program with go build and run it with go run file_name.go.

If you are using the flask servers, you will need to run pip3 install flask to install the dependencies.

The round-robin algorithm works as intended, but the least-connection algorithm doesnt acuratly remove idle connections.

Example Configuration

{
    "PORT": "80",
    "ALGORITHM": "RoundRobin",
    "SERVERS": [
        "http://127.0.0.1:5050",
        "http://127.0.0.1:5051",
        "http://127.0.0.1:5052"
    ]
}

Flask Servers

By default, the configuration file is set to use these three following local flask servers.

Node 1: "http://127.0.0.1:5050"
Node 2: "http://127.0.0.1:5051"
Node 3: "http://127.0.0.1:5052"

About

Basic load-balancing in GOlang to analyse the performance of modern routing algorithms.

Resources

Stars

Watchers

Forks