A load balancer is a component that, once invoked, distributes incoming requests to a list of registered providers and returns the value obtained from one of the registered providers to the original caller. This project intents to simulate the behavior of two types of load balancers with providers that create artificial load when invoked.
- Apache Log4j API
2.17.2
(log4j-api
) - Apache Log4j Core
2.17.2
(log4j-core
)
- JUnit Jupiter API
5.8.2
(junit-jupiter-api
) - JUnit Jupiter Engine
5.8.2
(junit-jupiter-engine
) - JUnit Jupiter Params
5.8.2
(junit-jupiter-params
) - Awaitility
4.2.0
(awaitility
)
# Install
mvn install
# ...or compile
mvn compile
# ...or package
mvn package
Unit tests cover all the scenarios for request load balancing for both types of load balancers implemented in the project.
# Test
mvn test
NOTE: Since the unit tests simulate various scenarios for Load Balancing, running all the tests might take a long time (approximately 1 minute on an Apple M1 powered computer with 32 GB of RAM).
In the base directory of the project, run the command below to generate the project's Javadoc to a directory in target/site
.
# Generate Javadoc
mvn javadoc:javadoc
All of the work is licensed under the MIT License, unless specified otherwise due to constraints by dependencies.