A set of utilities to work with consul from Node.js. Not full featured or architected well enough to call an API but a good start.
npm install consul-utils
Consul Utilities has no dependencies.
The service class can be used in Redwire.
var RedWire = require('redwire');
var consul = require('consul-utils');
var redwire = new RedWire({ http: { port: 80 } });
var services = new consul.Service('localhost:8500', 'web', function(added, removed) {
console.log(added.length + " added");
console.log(removed.length + " removed");
});
redwire.http('example.com')
.use(services.distribute())
.use(redwire.proxy());
This code will monitor the service named 'web' from the consul server localhost:8500
and round-robin load balance to all current services, making sure to stop if they leave the cluster and start as they join.
The optional callback can be used for logging changes to the server pool.
- Health Checks
- Custom page when there are no servers