使用Node.js连接到zookeeper

时间:2014-04-06 09:58:37

标签: node.js apache-zookeeper

我尝试使用node-zookeeper-client库连接到Zookeeper服务器。

代码似乎工作正常,除了一个我无法检测到的情况:服务器不可用时我启动了客户端。在这种情况下,客户端只是挂起,没有超时(似乎没有事件发生)。我怎样才能发现这种情况?

var zookeeper = require("node-zookeeper-client");

console.log("connecting to zookeeper");

zk = new zookeeper.createClient("localhost:2181", {
        sessionTimeout: 10,
        spinDelay : 10,
        retries : 0
});

zk.on("connected", function () {
    console.log("connected");
});

zk.on("connectedReadOnly", function () {
    console.log("connected read-only");
});

zk.on("expired", function () {
    console.log("zk session expired");
});

zk.on("disconnected", function (){
    console.log("disconnected from zk");
});

zk.on('state', function (state) {
    console.log("state : %s", state);
});

zk.connect();

我知道我可以使用这样的东西来检测情况,但感觉就像是黑客。

setTimeout(function () {
    /* am I still in the DISCONNECTED state? */
    console.log("client state: %s", zk.getState());
}, 5000);

0 个答案:

没有答案