Example Load Balancer implementation made with PHP with usage of psr-7 standard.
git clone [email protected]:kisztof/Loadbalancer.git
composer install -a --no-dev
As second argument for LoadBalance constructor pass one of two implemented BalanceStrategies
$strategy = new \SlomkaPro\Loadbalancer\BalanceStrategy\RoundRobinStrategy();
$lb = new \SlomkaPro\Loadbalancer\LoadBalancer($hosts, $strategy)
$lb->handleRequest($request);
Available strategies:
\SlomkaPro\Loadbalancer\BalanceStrategy\RoundRobinStrategy::class;
\SlomkaPro\Loadbalancer\BalanceStrategy\LoadLimitStrategy::class;
To implement new strategy simply use interface
\SlomkaPro\Loadbalancer\BalanceStrategy\BalanceStrategy::class
git clone [email protected]:kisztof/Loadbalancer.git
composer install
Before committing changes simply hit
composer build
./vendor/bin/phpunit
or use simply composer script
composer tests
Dynamic load balancing algorithms
- Least connection
- Weighted least connection
- Weighted response time
- Resource-based
Static load balancing algorithms
- Round robin
- Weighted round robin
- IP hash
Example folder contains simulations for both balancing strategies and an implemented simulation process.
php examples/example_RR.php
php examples/example_LL.php