New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

load-balancer-algorithm

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

load-balancer-algorithm

Load balancing algorithms using Node.js

latest
Source
npmnpm
Version
1.0.4
Version published
Weekly downloads
368
4.84%
Maintainers
1
Weekly downloads
 
Created
Source

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'

Keywords

loadbalance

FAQs

Package last updated on 03 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts