|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.netflix.curator.framework.recipes.leader.LeaderSelector
public class LeaderSelector
Abstraction to select a "leader" amongst multiple contenders in a group of JMVs connected to a Zookeeper cluster. If a group of N thread/processes contend for leadership one will randomly be assigned leader until it releases leadership at which time another one from the group will randomly be chosen
| Constructor Summary | |
|---|---|
LeaderSelector(CuratorFramework client,
String mutexPath,
LeaderSelectorListener listener)
|
|
LeaderSelector(CuratorFramework client,
String mutexPath,
ThreadFactory threadFactory,
Executor executor,
LeaderSelectorListener listener)
|
|
| Method Summary | |
|---|---|
void |
close()
Shutdown this selector and remove yourself from the leadership group |
String |
getId()
Return the ID that was set via setId(String) |
Participant |
getLeader()
Return the id for the current leader. |
Collection<Participant> |
getParticipants()
Returns the set of current participants in the leader selection |
boolean |
hasLeadership()
Return true if leadership is currently held by this instance |
void |
setId(String id)
Sets the ID to store for this leader. |
void |
start()
Attempt leadership. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public LeaderSelector(CuratorFramework client,
String mutexPath,
LeaderSelectorListener listener)
client - the clientmutexPath - the path for this leadership grouplistener - listener
public LeaderSelector(CuratorFramework client,
String mutexPath,
ThreadFactory threadFactory,
Executor executor,
LeaderSelectorListener listener)
client - the clientmutexPath - the path for this leadership groupthreadFactory - factory to use for making internal threadsexecutor - the executor to run inlistener - listener| Method Detail |
|---|
public void setId(String id)
getParticipants() is called. IMPORTANT: must be called
prior to start() to have effect.
id - IDpublic String getId()
setId(String)
public void start()
public void close()
close in interface Closeable
public Collection<Participant> getParticipants()
throws Exception
Returns the set of current participants in the leader selection
NOTE - this method polls the ZK server. Therefore it can possibly
return a value that does not match hasLeadership() as hasLeadership
uses a local field of the class.
Exception - ZK errors, interruptions, etc.
public Participant getLeader()
throws Exception
Return the id for the current leader. If for some reason there is no current leader, a dummy participant is returned.
NOTE - this method polls the ZK server. Therefore it can possibly
return a value that does not match hasLeadership() as hasLeadership
uses a local field of the class.
Exception - ZK errors, interruptions, etc.public boolean hasLeadership()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||