Nitroglycerin Pickle Machine

    zk-groupmembership

    2.0.1 • Public • Published

    zk-groupmembership

    build npm version npm downloads license

    This package allows you to initialize a member group in zookeeper, monitor its members, and register one or more members.
    This is useful for instance to manage the nodes when implementing consistent hashing.

    Usage

    ZKGroupMembership class

    const ZKGroupMembership = require("zk-groupmembership").ZKGroupMembership;
    const Zookeeper = require('node-zookeeper-client');
    console.log("Using zk-groupmembership");
    const client = Zookeeper.createClient(zkConnStr);
    client.connect();
     
    const group 
        = new ZKGroupMembership(client, '/groups/sharding_example_cluster', {
        timeout: 10000, //Optional timeout for registering, getting members, getting data etc
        setupTimeout: 10000, //Optional timeout for the setup call.
    });
     
    group.setup()
        .then(() => group.registerMember()) //Register a member with a generated id and no associated data
        .then((member) => {
            console.log("Registered Instance %s", member.id);
            taskSharding.selfNode = member.id;
            group.startMonitor(); //will cause the 'members', 'error' events to be emitted on the group instance.
        }).catch(err => {
        console.log("Couldn't participate in cluster:%s\%s", err.message, err.stack);
        process.exit(1);
    });
     
     
     

    Events

    group.on('error', err => {
        console.log("Cluster Error:%s\%s", err.message, err.stack);
        process.exit(1);
    });
    group.on('members', nodes => {
        currentNodeCount = nodes.length;
        taskSharding.setNodes(nodes);
    });
     

    Running the example

    Please look here

    Contributing

    In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality, lint and test your code.

    • To run lint and tests:

      npm test
      npm run lint

    Install

    npm i zk-groupmembership

    DownloadsWeekly Downloads

    4

    Version

    2.0.1

    License

    MIT

    Last publish

    Collaborators

    • avatar