@Inject public DistributedStreamFileJanitorService(ZKClient zkClient, final StreamFileJanitor janitor, final CConfiguration cConf) { String electionPrefix = "/" + Constants.Service.STREAMS + "/leader"; leaderElection = new LeaderElection(zkClient, electionPrefix, new ElectionHandler() { Service janitorService; @Override public void leader() { LOG.info("Leader of stream file janitor service"); janitorService = new LocalStreamFileJanitorService(janitor, cConf); janitorService.start(); } @Override public void follower() { LOG.info("Follower of stream file janitor service"); if (janitorService != null) { janitorService.stop(); janitorService = null; } } }); }
/** * Creates a new {@link LeaderElection} for the given arguments, starts the service, and adds it to the registry. * @param name Name for the election. * @param handler Callback to handle leader and follower transitions. * @return An object to cancel the election participation. */ public Cancellable register(String name, ElectionHandler handler) { LeaderElection election = new LeaderElection(zkClient, name, handler); election.start(); registry.put(name, election); return new CancellableElection(name, election); }
/** * Creates a new {@link LeaderElection} for the given arguments, starts the service, and adds it to the registry. * @param name Name for the election. * @param handler Callback to handle leader and follower transitions. * @return An object to cancel the election participation. */ public Cancellable register(String name, ElectionHandler handler) { LeaderElection election = new LeaderElection(zkClient, name, handler); election.start(); registry.put(name, election); return new CancellableElection(name, election); }
/** * Elect one leader among the {@link DistributedStreamService}s running in different Twill runnables. */ private void performLeaderElection() { // Start the resource coordinator that will map Streams to Stream handlers leaderElection = new LeaderElection( // TODO: Should unify this leader election with DistributedStreamFileJanitorService zkClient, "/election/" + STREAMS_COORDINATOR, new ElectionHandler() { @Override public void leader() { LOG.info("Became Stream handler leader. Starting resource coordinator."); resourceCoordinator = new ResourceCoordinator(getCoordinatorZKClient(), discoveryServiceClient, new BalancedAssignmentStrategy()); resourceCoordinator.startAndWait(); updateRequirement(); } @Override public void follower() { LOG.info("Became Stream handler follower."); if (resourceCoordinator != null) { resourceCoordinator.stopAndWait(); } } }); leaderElection.start(); }
leaderElection = new LeaderElection(zkClient, Constants.Service.MESSAGING_SERVICE, new ElectionHandler() { @Override public void leader() {
leaderElection = new LeaderElection(zkClient, Constants.Service.MESSAGING_SERVICE, new ElectionHandler() { @Override public void leader() {
new LeaderElection(zk, serviceName, new ElectionHandler() { private ResourceCoordinator coordinator;
new LeaderElection(zk, serviceName, new ElectionHandler() { private ResourceCoordinator coordinator;
@Override protected void doStart() { leaderElection = new LeaderElection(zkClient, "/tx.service/leader", new ElectionHandler() { @Override public void leader() {
@Override protected void doStart() { leaderElection = new LeaderElection(zkClient, "/tx.service/leader", new ElectionHandler() { @Override public void leader() {
@Override protected void doStart() { leaderElection = new LeaderElection(zkClient, "/tx.service/leader", new ElectionHandler() { @Override public void leader() {
@Override protected void doInit() throws IOException { this.keyCache.addListener(this); try { keyCache.init(); } catch (InterruptedException ie) { throw Throwables.propagate(ie); } this.leaderElection = new LeaderElection(zookeeper, "/leader", new ElectionHandler() { @Override public void leader() { leader.set(true); LOG.debug("Transitioned to leader"); if (currentKey == null) { rotateKey(); } } @Override public void follower() { leader.set(false); LOG.debug("Transitioned to follower"); } }); this.leaderElection.start(); startExpirationThread(); }
this.electionInfoService = new LeaderElectionInfoService(zkClient, electionPath); this.electionHandler = new MasterLeaderElectionHandler(cConf, hConf, zkClient, electionInfoService); this.leaderElection = new LeaderElection(zkClient, electionPath, electionHandler);
LeaderElection leaderElection = new LeaderElection(zkClient, prefix, new ElectionHandler() { @Override public void leader() {