Search in sources :

Example 1 with ExhibitorEnsembleProvider

use of org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider in project storm by apache.

the class Utils method setupBuilder.

protected static void setupBuilder(CuratorFrameworkFactory.Builder builder, final String zkStr, Map conf, ZookeeperAuthInfo auth) {
    List<String> exhibitorServers = getStrings(conf.get(Config.STORM_EXHIBITOR_SERVERS));
    if (!exhibitorServers.isEmpty()) {
        // use exhibitor servers
        builder.ensembleProvider(new ExhibitorEnsembleProvider(new Exhibitors(exhibitorServers, Utils.getInt(conf.get(Config.STORM_EXHIBITOR_PORT)), new Exhibitors.BackupConnectionStringProvider() {

            @Override
            public String getBackupConnectionString() throws Exception {
                // use zk servers as backup if they exist
                return zkStr;
            }
        }), new DefaultExhibitorRestClient(), Utils.getString(conf.get(Config.STORM_EXHIBITOR_URIPATH)), Utils.getInt(conf.get(Config.STORM_EXHIBITOR_POLL)), new StormBoundedExponentialBackoffRetry(Utils.getInt(conf.get(Config.STORM_EXHIBITOR_RETRY_INTERVAL)), Utils.getInt(conf.get(Config.STORM_EXHIBITOR_RETRY_INTERVAL_CEILING)), Utils.getInt(conf.get(Config.STORM_EXHIBITOR_RETRY_TIMES)))));
    } else {
        builder.connectString(zkStr);
    }
    builder.connectionTimeoutMs(Utils.getInt(conf.get(Config.STORM_ZOOKEEPER_CONNECTION_TIMEOUT))).sessionTimeoutMs(Utils.getInt(conf.get(Config.STORM_ZOOKEEPER_SESSION_TIMEOUT))).retryPolicy(new StormBoundedExponentialBackoffRetry(Utils.getInt(conf.get(Config.STORM_ZOOKEEPER_RETRY_INTERVAL)), Utils.getInt(conf.get(Config.STORM_ZOOKEEPER_RETRY_INTERVAL_CEILING)), Utils.getInt(conf.get(Config.STORM_ZOOKEEPER_RETRY_TIMES))));
    if (auth != null && auth.scheme != null && auth.payload != null) {
        builder.authorization(auth.scheme, auth.payload);
    }
}
Also used : Exhibitors(org.apache.curator.ensemble.exhibitor.Exhibitors) DefaultExhibitorRestClient(org.apache.curator.ensemble.exhibitor.DefaultExhibitorRestClient) ExhibitorEnsembleProvider(org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider) AuthorizationException(org.apache.storm.generated.AuthorizationException) TException(org.apache.thrift.TException) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException) ExecuteException(org.apache.commons.exec.ExecuteException) FileNotFoundException(java.io.FileNotFoundException) KeyNotFoundException(org.apache.storm.generated.KeyNotFoundException) InvalidTopologyException(org.apache.storm.generated.InvalidTopologyException) ParseException(org.json.simple.parser.ParseException)

Example 2 with ExhibitorEnsembleProvider

use of org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider in project druid by druid-io.

the class CuratorModuleTest method exhibitorEnsembleProvider.

@Test
public void exhibitorEnsembleProvider() {
    Properties props = new Properties();
    props.setProperty(CURATOR_HOST_KEY, "hostA");
    props.setProperty(EXHIBITOR_HOSTS_KEY, "[\"hostB\"]");
    Injector injector = newInjector(props);
    // initialize related components
    injector.getInstance(CuratorFramework.class);
    EnsembleProvider ensembleProvider = injector.getInstance(EnsembleProvider.class);
    Assert.assertTrue("EnsembleProvider should be ExhibitorEnsembleProvider", ensembleProvider instanceof ExhibitorEnsembleProvider);
}
Also used : Injector(com.google.inject.Injector) ExhibitorEnsembleProvider(org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider) Properties(java.util.Properties) ExhibitorEnsembleProvider(org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider) EnsembleProvider(org.apache.curator.ensemble.EnsembleProvider) FixedEnsembleProvider(org.apache.curator.ensemble.fixed.FixedEnsembleProvider) Test(org.junit.Test)

Example 3 with ExhibitorEnsembleProvider

use of org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider in project druid by druid-io.

the class CuratorModuleTest method exhibitorEnsembleProvider.

@Test
public void exhibitorEnsembleProvider() {
    Properties props = new Properties();
    props.put(curatorHostKey, "hostA");
    props.put(exhibitorHostsKey, "[\"hostB\"]");
    Injector injector = newInjector(props);
    // initialize related components
    injector.getInstance(CuratorFramework.class);
    EnsembleProvider ensembleProvider = injector.getInstance(EnsembleProvider.class);
    Assert.assertTrue("EnsembleProvider should be ExhibitorEnsembleProvider", ensembleProvider instanceof ExhibitorEnsembleProvider);
}
Also used : Injector(com.google.inject.Injector) ExhibitorEnsembleProvider(org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider) Properties(java.util.Properties) ExhibitorEnsembleProvider(org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider) EnsembleProvider(org.apache.curator.ensemble.EnsembleProvider) FixedEnsembleProvider(org.apache.curator.ensemble.fixed.FixedEnsembleProvider) Test(org.junit.Test)

Example 4 with ExhibitorEnsembleProvider

use of org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider in project druid by druid-io.

the class CuratorModule method makeEnsembleProvider.

@Provides
@LazySingleton
public EnsembleProvider makeEnsembleProvider(CuratorConfig config, ExhibitorConfig exConfig) {
    if (exConfig.getHosts().isEmpty()) {
        return new FixedEnsembleProvider(config.getZkHosts());
    }
    return new ExhibitorEnsembleProvider(new Exhibitors(exConfig.getHosts(), exConfig.getRestPort(), newBackupProvider(config.getZkHosts())), new DefaultExhibitorRestClient(exConfig.getUseSsl()), exConfig.getRestUriPath(), exConfig.getPollingMs(), new BoundedExponentialBackoffRetry(BASE_SLEEP_TIME_MS, MAX_SLEEP_TIME_MS, MAX_RETRIES)) {

        @Override
        public void start() throws Exception {
            log.info("Poll the list of zookeeper servers for initial ensemble");
            this.pollForInitialEnsemble();
            super.start();
        }
    };
}
Also used : Exhibitors(org.apache.curator.ensemble.exhibitor.Exhibitors) DefaultExhibitorRestClient(org.apache.curator.ensemble.exhibitor.DefaultExhibitorRestClient) ExhibitorEnsembleProvider(org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider) FixedEnsembleProvider(org.apache.curator.ensemble.fixed.FixedEnsembleProvider) BoundedExponentialBackoffRetry(org.apache.curator.retry.BoundedExponentialBackoffRetry) LazySingleton(io.druid.guice.LazySingleton) Provides(com.google.inject.Provides)

Example 5 with ExhibitorEnsembleProvider

use of org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider in project druid by druid-io.

the class CuratorModule method makeEnsembleProvider.

@Provides
@LazySingleton
public EnsembleProvider makeEnsembleProvider(CuratorConfig config, ExhibitorConfig exConfig) {
    if (exConfig.getHosts().isEmpty()) {
        return new FixedEnsembleProvider(config.getZkHosts());
    }
    RetryPolicy retryPolicy = new BoundedExponentialBackoffRetry(BASE_SLEEP_TIME_MS, MAX_SLEEP_TIME_MS, MAX_RETRIES);
    return new ExhibitorEnsembleProvider(new Exhibitors(exConfig.getHosts(), exConfig.getRestPort(), newBackupProvider(config.getZkHosts())), new DefaultExhibitorRestClient(exConfig.getUseSsl()), exConfig.getRestUriPath(), exConfig.getPollingMs(), retryPolicy) {

        @Override
        public void start() throws Exception {
            log.debug("Polling the list of ZooKeeper servers for the initial ensemble");
            this.pollForInitialEnsemble();
            super.start();
        }
    };
}
Also used : Exhibitors(org.apache.curator.ensemble.exhibitor.Exhibitors) DefaultExhibitorRestClient(org.apache.curator.ensemble.exhibitor.DefaultExhibitorRestClient) ExhibitorEnsembleProvider(org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider) RetryPolicy(org.apache.curator.RetryPolicy) FixedEnsembleProvider(org.apache.curator.ensemble.fixed.FixedEnsembleProvider) BoundedExponentialBackoffRetry(org.apache.curator.retry.BoundedExponentialBackoffRetry) LazySingleton(org.apache.druid.guice.LazySingleton) Provides(com.google.inject.Provides)

Aggregations

ExhibitorEnsembleProvider (org.apache.curator.ensemble.exhibitor.ExhibitorEnsembleProvider)7 DefaultExhibitorRestClient (org.apache.curator.ensemble.exhibitor.DefaultExhibitorRestClient)4 Exhibitors (org.apache.curator.ensemble.exhibitor.Exhibitors)4 FixedEnsembleProvider (org.apache.curator.ensemble.fixed.FixedEnsembleProvider)4 Injector (com.google.inject.Injector)2 Provides (com.google.inject.Provides)2 IOException (java.io.IOException)2 Properties (java.util.Properties)2 EnsembleProvider (org.apache.curator.ensemble.EnsembleProvider)2 BoundedExponentialBackoffRetry (org.apache.curator.retry.BoundedExponentialBackoffRetry)2 ExponentialBackoffRetry (org.apache.curator.retry.ExponentialBackoffRetry)2 Test (org.junit.Test)2 BootstrapException (com.kixeye.chassis.bootstrap.BootstrapException)1 LazySingleton (io.druid.guice.LazySingleton)1 FileNotFoundException (java.io.FileNotFoundException)1 UnknownHostException (java.net.UnknownHostException)1 ExecuteException (org.apache.commons.exec.ExecuteException)1 RetryPolicy (org.apache.curator.RetryPolicy)1 CuratorFramework (org.apache.curator.framework.CuratorFramework)1 CuratorFrameworkFactory (org.apache.curator.framework.CuratorFrameworkFactory)1