Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

redis-registry

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redis-registry

Service registry for Node.js on top of redis

  • 1.0.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
12
Maintainers
1
Weekly downloads
 
Created
Source

redis-registry

Build Status npm version

Service registry and discovery for distributed systems on top of redis and node.js

Install

npm install redis-registry

Usage

Computer 1

const registry = require('redis-registry');

const redisConfig = {
  host: '192.168.1.50',
  port: 6379
}
const services = registry(redisConfig);

// Join the registry
services.join('my-service-name', {port:8080});

Computer 2

const registry = require('redis-registry');

const redisConfig = {
  host: '192.168.1.50',
  port: 6379
}
const services = registry(redisConfig);

// Do a lookup
services.lookup('my-service-name', function(err, service) {
  console.log('Found the following service:');
  console.log(service);
});

Running the above example will produce the following output

Found the following service:
{
  name: 'my-service-name',
  port: 8080,
  hostname: '192.168.1.10',
  host: '192.168.1.10:8080',
  url: 'http://192.168.1.10:8080'
}

Note: If no hostname is passed to the join function, it will pickup the main interface IP as the hostname. If you need to use the IP of a non-primary interface, set the environment variable REGISTRY_INTERFACE to the name of the device of your choice (eth1, en1, etc)

Full api

  • services = registry(redisConfig) Create a new registry client
  • services.join(name, service, [cb]) Join the registry with a new service
  • services.leave([name], [cb]) Leave the registry.
  • services.lookup(name, cb) Lookup a single service
  • services.list([name], cb) List all services as an array. Omit the name to list all services

Services

Services are just JSON documents. redis-registry will add a default hostname and a couple of other properties. An example of a service document could be:

{
  name: 'my-service',
  port: 8080,
  hostname: '192.168.1.10',       // added by redis-registry
  host: '192.168.1.10:8080',      // added by redis-registry
  url: 'http://192.168.1.10:8080' // added by redis-registry
}

These documents are saved in redis with a TTL of 10s. Every 5s redis-registry will send an update for each service to the registry which resets the expiration counter keeping the service record. If possible you should call services.leave() before exiting your service process. Otherwise your service will be garbage collected after (at most) 10s. If your process goes down, it will automatically leave the registry (due to the TTL) and will not be discovered from other process.

License

MIT

Keywords

FAQs

Package last updated on 21 Oct 2021

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc