public static LocalPaxosServices createAndRegisterLocalServices( MetricsManager metricsManager, Consumer<Object> env, LeaderConfig config, Supplier<LeaderRuntimeConfig> runtime, String userAgent) { LocalPaxosServices localPaxosServices = createInstrumentedLocalServices( metricsManager, config, runtime, userAgent); env.accept(localPaxosServices.ourAcceptor()); env.accept(localPaxosServices.ourLearner()); env.accept(localPaxosServices.pingableLeader()); env.accept(new NotCurrentLeaderExceptionMapper()); return localPaxosServices; }
public void registerLeaderElectionService() { Set<String> remoteServers = PaxosRemotingUtils.getRemoteServerPaths(install); LeaderConfig leaderConfig = getLeaderConfig(); Set<String> paxosSubresourceUris = PaxosTimeLockUriUtils.getLeaderPaxosUris(remoteServers); Leaders.LocalPaxosServices localPaxosServices = Leaders.createInstrumentedLocalServices( metricsManager, leaderConfig, Suppliers.compose(getLeaderRuntimeConfig::apply, runtime::get), ImmutableRemotePaxosServerSpec.builder() .remoteLeaderUris(remoteServers) .remoteAcceptorUris(paxosSubresourceUris) .remoteLearnerUris(paxosSubresourceUris) .build(), "leader-election-service"); localPingableLeader = localPaxosServices.pingableLeader(); leaderElectionService = localPaxosServices.leaderElectionService(); leadershipObserver = localPaxosServices.leadershipObserver(); registrar.accept(localPingableLeader); registrar.accept(new LeadershipResource( localPaxosServices.ourAcceptor(), localPaxosServices.ourLearner())); }
public static LocalPaxosServices createAndRegisterLocalServices( MetricsManager metricsManager, Consumer<Object> env, LeaderConfig config, Supplier<LeaderRuntimeConfig> runtime, String userAgent) { LocalPaxosServices localPaxosServices = createInstrumentedLocalServices( metricsManager, config, runtime, userAgent); env.accept(localPaxosServices.ourAcceptor()); env.accept(localPaxosServices.ourLearner()); env.accept(localPaxosServices.pingableLeader()); env.accept(new NotCurrentLeaderExceptionMapper()); return localPaxosServices; }