bluemix-service-discovery-node
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
.