【问题标题】:Slow leadership election with apache zookeeper+curator使用 apache zookeeper+curator 进行缓慢的领导选举
【发布时间】:2014-10-04 14:13:18
【问题描述】:

我正在使用 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();

【问题讨论】:

    标签: apache-zookeeper apache-curator


    【解决方案1】:

    我想通了:ZooKeeper 有 30 秒的会话超时,在此期间它不会删除临时节点。这就是为什么没有选出新的领导者(因为没有选出领导节点)。这也可以防止在所有节点关闭并在最后一个领导者超时结束之前重新启动时选举领导者。

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

    【讨论】:

      【解决方案2】:

      你可以减少zookeeper配置文件中的“ticktime”参数,重启所有服务器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-16
        • 1970-01-01
        • 1970-01-01
        • 2015-09-08
        • 1970-01-01
        相关资源
        最近更新 更多