JSPM

load-balancer-algorithm

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 352
  • Score
    100M100P100Q105989F
  • License ISC

![CI](https://github.com/xu8511831/load-balancers/workflows/CI/badge.svg)

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

CI version size

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-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 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 test

if you need the specify test file to run

$ npx mocha -r ts-node/register  --file './test/weightedRandom.test.ts'