public class LeaderElectorImp extends Object implements ILeaderElector
| Constructor and Description |
|---|
LeaderElectorImp(org.apache.storm.shade.org.apache.curator.framework.CuratorFramework zk,
String id,
LeaderListenerCallbackFactory leaderListenerCallbackFactory) |
| Modifier and Type | Method and Description |
|---|---|
void |
addToLeaderLockQueue()
queue up for leadership lock.
|
boolean |
awaitLeadership(long timeout,
TimeUnit timeUnit)
Wait for the caller to gain leadership.
|
void |
close()
Method called to allow for cleanup.
|
List<NimbusInfo> |
getAllNimbuses()
Get list of current nimbus addresses.
|
NimbusInfo |
getLeader()
Get the current leader’s address.
|
boolean |
isLeader()
Decide if the caller currently has the leader lock.
|
void |
prepare(Map<String,Object> conf)
Method guaranteed to be called as part of initialization of leader elector instance.
|
void |
quitElectionFor(int delayMs)
Removes the caller from leadership election, relinquishing leadership if acquired, then requeues for leadership after the specified delay.
|
public LeaderElectorImp(org.apache.storm.shade.org.apache.curator.framework.CuratorFramework zk,
String id,
LeaderListenerCallbackFactory leaderListenerCallbackFactory)
public void prepare(Map<String,Object> conf)
ILeaderElectorMethod guaranteed to be called as part of initialization of leader elector instance.
prepare in interface ILeaderElectorconf - configurationpublic void addToLeaderLockQueue()
throws Exception
ILeaderElectorqueue up for leadership lock. The call returns immediately and the caller must check isLeader() to perform any leadership action. This method can be called multiple times so it needs to be idempotent.
addToLeaderLockQueue in interface ILeaderElectorExceptionpublic void quitElectionFor(int delayMs)
throws Exception
ILeaderElectorRemoves the caller from leadership election, relinquishing leadership if acquired, then requeues for leadership after the specified delay.
quitElectionFor in interface ILeaderElectordelayMs - The delay to wait before re-entering the electionExceptionpublic boolean isLeader()
throws Exception
ILeaderElectorDecide if the caller currently has the leader lock.
isLeader in interface ILeaderElectorExceptionpublic boolean awaitLeadership(long timeout,
TimeUnit timeUnit)
throws InterruptedException
ILeaderElectorWait for the caller to gain leadership. This should only be used in single-Nimbus clusters, and is only useful to allow testing code to wait for a LocalCluster’s Nimbus to gain leadership before trying to submit topologies.
awaitLeadership in interface ILeaderElectorInterruptedExceptionpublic NimbusInfo getLeader()
ILeaderElectorGet the current leader’s address.
getLeader in interface ILeaderElectorpublic List<NimbusInfo> getAllNimbuses() throws Exception
ILeaderElectorGet list of current nimbus addresses.
getAllNimbuses in interface ILeaderElectorExceptionpublic void close()
throws Exception
ILeaderElectorMethod called to allow for cleanup. Relinquishes leadership if owned by the caller.
close in interface AutoCloseableclose in interface ILeaderElectorExceptionCopyright © 2021 The Apache Software Foundation. All rights reserved.