Package Exports
- load-balancer-algorithm
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (load-balancer-algorithm) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
load-balancer-algorithm
Just load balancing algorithms implementation.
Current support load balancing algorithms include:
- Random
- Weighted Random
- Round Robin
- Weighted Round Robin
- Consistent Hash
Installation
$ npm i load-balancer-algorithm
# or
$ yarn add load-balancer-algorithmGetting Started
typescript
import LBA, { Random } from "load-balancer-algorithm";
const weightPool = [
{ host: "127.0.0.2:6061", weight: 2 },
{ host: "127.0.0.1:6062", weight: 3 },
{ host: "127.0.0.3:6063", weight: 10 },
];
const loadBalance = new LBA.WeightedRoundRobin(weightPool);
const address = loadBalance.pick();
// should return { host }
console.log(address)commomjs
const LBA = require('load-balancer-algorithm');
const weightPool = [
{ host: "127.0.0.2:6061", weight: 2 },
{ host: "127.0.0.1:6062", weight: 3 },
{ host: "127.0.0.3:6063", weight: 10 },
];
const loadBalance = new LBA.WeightRandom(weightPool);
const host = loadBalance.pick();
console.log(host)API
.pool
The property will be get pool of an instance.
.pick(args?: array)
Will get a object from the pool based on the different algorithms.
.reset(pool: array)
Reset the instance fully.
Build
execute npm run build from a terminal window
Test
let's run the test script
$ npm test
# or
$ yarn testif you need the specify test file to run
$ npx mocha -r ts-node/register --file './test/weightedRandom.test.ts'