1.0.2 • Published 10 years ago

hapi-service-discovery v1.0.2

Weekly downloads
1
License
MIT
Repository
github
Last release
10 years ago

#Hapi-service-discovery Build Status NPM version Dependencies

Hapi Plugin for opentable-flavoured service-discovery

Connects the discovery client, exposes routes for announce, unannounce (so that you can control the server externally), and wraps the logging to server.log

Currently depends on some closed-source modules which we are in the process of open-sourcing

Usage:

var server = hapi.createServer();

server.pack.register({
  plugin: require('hapi-service-discovery'),
  options: {
    host: 'my-discovery-server.com',
    serviceType: 'my-service',
    serviceUri: 'http://my-service.domain.com', // Defaults to the machine's FQDN,
    discoveryRoutesAuth: false, // optional, default behaviour is to inherit the route default, can either be false (to disable auth) or the name of an auth strategy (to override the route default).
    metadata: { // metadata is optional
      domain: 'com'
    },
    onError: function(err) {
      // optional error handler
      // when set, forces initialisation to continue when any runtime errors are encountered
    },
    gracefulShutdown: true, // uses hapi-shutdown to unannounce gracefully on SIGTERM (defaults to false)
    waitOnShutdown: 20 * 1000 // time to wait after unannounce (defaults to 30 seconds)
});

server.start(function(){
  server.log(["info"], "server started...");

  server.plugins['hapi-service-discovery'].announce(function(err){
      if(err){
        throw err;
      }

      server.log(["info"], "announced");
    })
});

The plugin exposes the following methods from the ot-discovery module:

- announce(callback)
- unannounce(lease, callback)
- find(serviceType | predicate )
- findAll(serviceType | predicate)

Routes:

GET /discovery/announce    - announce this server to the registry
GET /discovery/unannounce  - unannounce this server
GET /discovery/lease       - show lease info
GET /discovery/lastUpdated - show last time the client received an update from the remote discovery service (useful for monitoring)

Logging: Will log using 'plugin.log()' and the tag "discovery"

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago

0.6.0

10 years ago

0.5.0

10 years ago

0.4.0

10 years ago

0.3.0

10 years ago

0.2.1

11 years ago

0.2.0

11 years ago

0.1.2

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago