Apache zookeeper apache zookeeper领导层选举缓慢+;馆长

Apache zookeeper apache zookeeper领导层选举缓慢+;馆长,apache-zookeeper,apache-curator,Apache Zookeeper,Apache Curator,我正在用LeaderLatch玩领导人选举。当ZooKeeper安装在本地时,只有一个实例时,我有大约30秒的时间来选举领导人;当领导人下台时(当我终止流程时),我几乎有同样的时间来选举新领导人。这应该是这样工作的吗?我能加快速度吗 我使用以下代码: CuratorFramework curator = CuratorFrameworkFactory.newClient("127.0.0.1", new ExponentialBackoffRetry(100, 3)); cura

我正在用LeaderLatch玩领导人选举。当ZooKeeper安装在本地时,只有一个实例时,我有大约30秒的时间来选举领导人;当领导人下台时(当我终止流程时),我几乎有同样的时间来选举新领导人。这应该是这样工作的吗?我能加快速度吗

我使用以下代码:

    CuratorFramework curator = CuratorFrameworkFactory.newClient("127.0.0.1", new ExponentialBackoffRetry(100, 3));
    curator.start();
    LeaderLatch leaderLatch = new LeaderLatch(curator, "/test/t");
    leaderLatch.addListener(new LeaderLatchListener() {
        @Override
        public void isLeader() {
            System.out.println("Leader");
        }

        @Override
        public void notLeader() {
        }
    });
    leaderLatch.start();

我发现:ZooKeeper有30秒的会话超时,在此期间它不会删除临时节点。这就是为什么没有选出新的领导者(因为没有选出领导者节点)。此外,这还可以防止在最后一个引线超时完成之前关闭并重新启动所有节点时选择引线

为了避免这种情况,您需要使用
close
方法手动关闭curator,在这种情况下,会话会立即终止。

您可以减少zookeeper配置文件中的“ticktime”参数。然后重新启动所有服务器