Giter Club home page Giter Club logo

cueball-resolver's Introduction

cueball-resolver

Build Status

Custom Resolver for https://joyent.github.io/node-cueball
Static IP resolver with add and remove interface.

Install

npm install cueball-resolver

API

See for the complete API: https://joyent.github.io/node-cueball/#resolver

new Resolver(options)

  • options -- Object, with keys:
    • defaultPort -- optional Number (defaults to 80), fallback port to use for backends that only have an address property
    • backends -- Array of objects, each having properties (optional, defaults to []):
      • address -- String, an IP address to emit as a backend
      • port -- Number (optional, defaults to 80), a port number for this backend

addBackend(backend)

Adds a new backend.

  • backend -- object:
    • address -- String, an IP address to emit as a backend
    • port -- Number (optional, defaults to 80), a port number for this backend

Returns with the backend.

removeBackend(backend)

Removes a backend.

  • backend -- object:
    • address -- String, an IP address to emit as a backend
    • port -- Number (optional, defaults to 80), a port number for this backend

Returns with the backend.

resetBackends([backends])

Clears all backends and add news if provided.

  • backends -- Array of objects, each having properties (optional, defaults to []):
    • address -- String, an IP address to emit as a backend
    • port -- Number (optional, defaults to 80), a port number for this backend

How to use

const bunyan = require('bunyan')
const cueball = require('cueball')
const restifyClients = require('restify-clients')
const Resolver = require('cueball-resolver')

const agent = new cueball.HttpAgent({
  log: bunyan.createLogger({
    name: 'agent-test',
    level: process.env.LOG_LEVEL || 'error'
  }),
  spares: 2,
  maximum: 4,
  recovery: {
    default: {
      timeout: 50,
      retries: 2,
      delay: 5,
      maxDelay: 50
    }
  }
})

const client = restifyClients.createStringClient({
  url: 'http://test.host.com',
  agent
})

const resolver = new Resolver({
  backends: [
    {
      address: '127.0.0.1',
      port: 1234
    }
  ]
})

resolver.start()

agent.createPool('test.host.com', {
  resolver
})

client.get('/test', (err, req, res, data) => {}

How it works

See: https://joyent.github.io/node-cueball/#resolver

cueball-resolver's People

Contributors

hekike avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.