public LeaderLatch(CuratorFramework client, String latchPath)Parameters: client - the client latchPath - the path for this leadership grouppublic LeaderLatch(CuratorFramework client, String latchPath, String id)Parameters: client - the client latchPath - the path for this leadership groupid - participant ID
构建了LeaderLatch对象后,需要对象调用start方法启动,我们然后就可以通过使用
代码语言:javascript
代码运行次数:0
复制
public boolean hasLeadership()Return true if leadership is currently held by this instance
public class LeaderLatchListenerImpl implements LeaderLatchListener {
@Override public void isLeader() { // TODO Auto-generated method stub System.out.println("master"); }
@Override public void notLeader() { // TODO Auto-generated method stub System.out.println("slave"); }}
3,LeaderLatchListener
public class LeaderLatchMain { private static final String PATH = "/examples/leader"; public static void main(String[] args) throws Exception { CuratorFramework client = CuratorFrameworkFactory.newClient("106.75.13.87:2181", new ExponentialBackoffRetry(1000, 3)); client.start(); LeaderLatch leaderLatch = new LeaderLatch(client, PATH,args[0]); leaderLatch.addListener(new LeaderLatchListenerImpl());
try { leaderLatch.start(); Thread.sleep(10000); System.out.println(leaderLatch.getLeader()); Thread.sleep(Integer.MAX_VALUE); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); leaderLatch.close(); client.close(); }
}}