load-balancer-algorithm
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

load-balancer-algorithm

Build Status Coverage Status version size

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

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 wrr = new LBA.WeightedRoundRobin(weightPool);
const wrrAddress = wrr.pick();
 
// should return { host }
console.log(wrrAddress)
 
// non-weighted
const pool = ["127.0.0.1", "127.0.0.3", "127.0.0.2", "127.0.0.4"];
 
const r = new Random(pool);
const rAddress = r.pick();
 
// should return { host }
console.log(rAddress)

Commomjs

const LBA = require('load-balancer-algorithm');
 
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 = new LBA.WeightedRoundRobin(weightRandomPool);
 
for(let i = 0; i < 10; i++){
  const address = loadBalance.pick();
  weightedList.push(loadBalance.getWeight(address.host))
}
// [5, 5, 3, 5, 2, 3, 5, 2, 3, 5]
console.log(weightedList)

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'

Package Sidebar

Install

npm i load-balancer-algorithm

Weekly Downloads

125

Version

1.0.4

License

ISC

Unpacked Size

60.3 kB

Total Files

47

Last publish

Collaborators

  • bigwinds