Nonlinear Performance Magnification

    consul-leader

    1.0.0 • Public • Published

    consul-leader

    Consul leader election and retirement.

    https://www.consul.io/docs/guides/leader-election.html

    Usage

    npm install --save consul-leader
    
    const Leader = require('consul-leader');
     
    let consulLeader = new Leader('locking-key');
    consulLeader.on('elected', () => {
        // start service
    });
     
    consulLeader.on('retired', () => {
        // stop service
    });

    Leader

    Configuration

    No configuration is required, but it's recommended to provide at least a custom key name.

    let consulLeader = new Leader('locking-key');

    It's possible to configure every aspect (consul, session, key) by providing a configuration object instead of a plain string. Most aspects match the configuration options of the consul package.

    let consulLeader = new Leader({
        consul: {
            host: '127.0.0.1',
            port: 8500
        },
        session: {
            ttl: 10,
            lockdelay: 15
        },
        key: {
            key: 'locking-key',
            value: 'leader'
        }
    });

    The consul configuration matches the consul constructor options. Note: the promisify option is required and will be automatically enabled in this package.

    The session configuration matches the consul session create options. But the ttl and lockdelay options have to be integers in seconds.

    The key configuration matches the consul kv set options. The acquire and release options are automatically added, overwriting them will lead to unexpected behaviour.

    Events

    The Leader class will automatically try to acquire the leader lock and emits two different events:

    • elected: Will be fired when the current instance has acquired the leader lock successfully
    • retired: Will be fired when the current instance has lost the leader lock
    consulLeader.on('elected', () => {
        // start service
    });
     
    consulLeader.on('retired', () => {
        // stop service
    });

    Resign

    If the current instance wants to stop, it can release the lock safely and give others the chance to take over.

    consulLeader.resign();

    Install

    npm i consul-leader

    DownloadsWeekly Downloads

    0

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    12.9 kB

    Total Files

    7

    Last publish

    Collaborators

    • aternos