bluemix-service-discovery

0.1.1 • Public • Published

bluemix-service-discovery-node

Build Status

bluemix service discovery client for node

Install

npm install bluemix-service-discovery

Usage

In Bluemix, bind Service Discovery to your application and configure the client:

var ServiceDiscovery = require('bluemix-service-discovery');
var discovery = new ServiceDiscovery({
  name: 'ServiceDiscovery',
  auth_token: '<AUTH TOKEN>',
  url: '<SERVICE DISCOVERY URL>',
  version: 1
});

// list services that are still alive
discovery.getServices(function(error, response, services) {
  // handle services
});

// register a service and send heartbeats
discovery.register({
  "service_name": "users_api",
  "ttl": 0,
  "endpoint": {
    "host": "https://api.users.coolapp.com",
    "port": 443
  },
  "metadata": {}
}, function(error, response, service) {
  if (!error) {
    var intervalId = setInterval(function() {
      discovery.renew(service.id, function(error, response, service) {
        if (error || response.statusCode !== 200) {
          console.log('Could not send heartbeat');
          clearInterval(intervalId);
        }
      });
    }, 1000);
  }
});

More examples can be found in the /examples folder

API

new ServiceDiscovery(opts)

opts - json

  • name - string
  • version - api version (default: 1)

The method calls use a callback with the signature function(error, response, error).

register(instance, callback)

Register a new service instance

Instance:

{
  "service_name": <string>,
  "ttl": <number>,
  "endpoint": {
    "type": <string>,
    "value": <string>
  },
  "status": <string>,
  "metadata": <json>
}

Returns:

{
  "id": <string>,
  "ttl": 0,
  "links": {
    "self": <string>,
    "heartbeat": <string>
  }
}

unregister(id, callback)

Removes the registration for an existing service instance

renew(id, callback)

Sends a heartbeat for an existing service instance registration. Failing to renew the registration will result in the instance being removed from the registry.

getInstances(callback)

Returns a list of all instances

getServices(callback)

Returns a list of all registered services

getServiceInstances(serviceName, callback)

Returns a list of all registered service instances of serviceName.

Package Sidebar

Install

npm i bluemix-service-discovery

Weekly Downloads

0

Version

0.1.1

License

MIT

Last publish

Collaborators

  • jjfreric