ElasticJBalancer is an elastic load balancer implemented in Java.
ElasticJBalancer can not only automatically scale up and scale down workers based on the number of incoming requests, but also predict the number of incoming requests using machine learning algorithm REPTree, which is the best model based on our experiments. ElasticJBalancer allocates the incoming requests to workers based on the monitoring information of resource usage and the peak prediction. We use parallelism to implement ElasticJBalancer in one node. The goal of ElasticJBalancer is to balance load generated by huge clients across worker nodes.
To build the project, run
gradle build
To Use, first edit master_addresses and worker_addresses to add the ip and port you will be using:
Run Worker
java -jar 15618.jar worker worker_port (eg. java -jar 15618.jar worker 5000)
Run Master
java -jar 15618.jar master master_port (eg. java -jar 15618.jar master 3000)
Run Client
java -jar 15618.jar client your_trace_file/request_rate (eg. java -jar 15618.jar client 100)
The Repository is only used for study. All rights reserved.