load-balancer-algorithm
Just load balancing algorithms implementation.
Currently supported load balancing algorithms include:
- Random
- Weighted Random
- Round Robin
- Weighted Round Robin
- Consistent Hash
You can debug the project in VS CODE.
Installation
$ npm i load-balancer-algorithm# or $ yarn add load-balancer-algorithm
Getting Started
TypeScript
; ; ;; // should return { host }console.logwrrAddress // non-weighted; ;; // should return { host }console.logrAddress
Commomjs
const LBA = ; const weightRandomPool = host: "127.0.0.2:6061" weight: 2 host: "127.0.0.1:6062" weight: 3 host: "127.0.0.3:6063" weight: 5 ;const weightedList = const loadBalance = weightRandomPool; forlet i = 0; i < 10; i++ const address = loadBalance; weightedList// [5, 5, 3, 5, 2, 3, 5, 2, 3, 5]console
API
.pool
The property will be get pool of an instance.
.size
Returns the number of in pool object.
.pick(args?: array)
Will get a object from the pool based on the different algorithms.
.reset(pool: array)
Reset the instance fully.
.getWeight(host: string)
Returns a weight value associated to the host.
Build
execute npm run build
from a terminal window
Test
let's run the test script
$ npm test# or $ yarn test
if you need the specify test file to run
$ npx mocha -r ts-node/register --file './test/weightedRandom.test.ts'