Dan*_*iil 6 apache-zookeeper apache-curator
我正在使用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();
Run Code Online (Sandbox Code Playgroud)
我想出来了:ZooKeeper会话超时30秒,在此期间它不会删除短暂的节点.这就是新领导人没有当选的原因(因为领导者节点没有当选).此外,当所有节点都关闭并在最后一个领导者超时完成之前再次启动时,这可以防止选举领导者.
为了避免这种情况,您需要使用close方法手动关闭curator ,在这种情况下会话立即终止.
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |