美文网首页Zookeeper
解决 php-Zookeeper Connection Loss

解决 php-Zookeeper Connection Loss

作者: 泡水鱼干 | 来源:发表于2021-05-16 19:53 被阅读0次

    问题:使用zookeeper集群时候,当其中一台主机停止服务,再次请求过程中会不定期出现 Connection Loss 问题
    原因:php- zookeeper 资源没有获得链接,就调用相关操作(比如create 等)

    解决办法:通过链接状态进行判断,当链接建立之后再进行操作

    链接状态:

    Zookeeper::EXPIRED_SESSION_STATE; //-112
    Zookeeper::AUTH_FAILED_STATE; // -113
    Zookeeper::CONNECTING_STATE; //1
    Zookeeper::ASSOCIATING_STATE; //2
    Zookeeper::CONNECTED_STATE; //3
    Zookeeper::READONLY_STATE; // 在php-zookeeper 0.7.2中没有该状态
    Zookeeper::NOTCONNECTED_STATE; //999
    

    使用:

    $path = "/learn";
    $zk = new \Zookeeper('192.168.3.111:2181,192.168.3.112:2181,192.168.3.113:2181');
    // 注意:此处只为演示,实际使用应加入其他控制条件,比如2秒内链接不上就需要break,同时抛出异常
    while (true) {
        $status = $zk->getState();
        if ($status == \Zookeeper::CONNECTED_STATE) {
            break;
        }
    }
    
    try {
        if (!$zk->exists($path)) {
            // TODU
        }
        echo $zk->get($path);
    } catch (\Exception $e) {
        // TODU
    }
    

    相关文章

      网友评论

        本文标题:解决 php-Zookeeper Connection Loss

        本文链接:https://www.haomeiwen.com/subject/dwprjltx.html