Here are the examples of the java api org.apache.pulsar.shade.org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
14
Source : CachedClients.java
with Apache License 2.0
from streamnative
with Apache License 2.0
from streamnative
/**
* Cached ML / BK client to be shared among threads inside a process.
*/
@Slf4j
public clreplaced CachedClients {
private static final String OFFLOADERS_DIRECTOR = "offloadersDirectory";
private static final String MANAGED_LEDGER_OFFLOAD_DRIVER = "managedLedgerOffloadDriver";
private static final String MANAGED_LEDGER_OFFLOAD_MAX_THREADS = "managedLedgerOffloadMaxThreads";
static CachedClients instance;
private final ManagedLedgerFactoryImpl managedLedgerFactory;
private final StatsProvider statsProvider;
private OrderedScheduler offloaderScheduler;
private Offloaders offloaderManager;
private LedgerOffloader offloader;
private CachedClients(ConnectorConfig config) throws Exception {
this.managedLedgerFactory = initManagedLedgerFactory(config);
this.statsProvider = createInstance(config.getStatsProvider(), StatsProvider.clreplaced, getClreplaced().getClreplacedLoader());
// start stats provider
ClientConfiguration clientConfiguration = new ClientConfiguration();
config.getStatsProviderConfigs().forEach(clientConfiguration::setProperty);
this.statsProvider.start(clientConfiguration);
this.offloader = initManagedLedgerOffloader(config);
}
public static CachedClients getInstance(ConnectorConfig config) throws Exception {
synchronized (CachedClients.clreplaced) {
if (instance == null) {
instance = new CachedClients(config);
}
}
return instance;
}
public static void shutdown() throws Exception {
synchronized (CachedClients.clreplaced) {
if (instance != null) {
instance.statsProvider.stop();
instance.managedLedgerFactory.shutdown();
instance.offloaderScheduler.shutdown();
instance.offloaderManager.close();
instance = null;
}
}
}
private ManagedLedgerFactoryImpl initManagedLedgerFactory(ConnectorConfig config) throws Exception {
ClientConfiguration bkClientConfiguration = new ClientConfiguration().setZkServers(config.getZookeeperUri()).setMetadataServiceUri("zk://" + config.getZookeeperUri() + "/ledgers").setClientTcpNoDelay(false).setUseV2WireProtocol(true).setStickyReadsEnabled(false).setAllowShadedLedgerManagerFactoryClreplaced(true).setShadedLedgerManagerFactoryClreplacedPrefix("org.apache.pulsar.shade.").setReadEntryTimeout(60).setThrottleValue(config.getBookkeeperThrottleValue()).setNumIOThreads(config.getBookkeeperNumIOThreads()).setNumWorkerThreads(config.getBookkeeperNumWorkerThreads());
ManagedLedgerFactoryConfig managedLedgerFactoryConfig = new ManagedLedgerFactoryConfig();
managedLedgerFactoryConfig.setMaxCacheSize(config.getManagedLedgerCacheSizeMB());
managedLedgerFactoryConfig.setNumManagedLedgerWorkerThreads(config.getManagedLedgerNumWorkerThreads());
managedLedgerFactoryConfig.setNumManagedLedgerSchedulerThreads(config.getManagedLedgerNumSchedulerThreads());
return new ManagedLedgerFactoryImpl(bkClientConfiguration, managedLedgerFactoryConfig);
}
private synchronized OrderedScheduler getOffloaderScheduler(ConnectorConfig config) {
if (this.offloaderScheduler == null) {
this.offloaderScheduler = OrderedScheduler.newSchedulerBuilder().numThreads(config.getManagedLedgerOffloadMaxThreads()).name("pulsar-offloader").build();
}
return this.offloaderScheduler;
}
private LedgerOffloader initManagedLedgerOffloader(ConnectorConfig config) {
try {
if (StringUtils.isNotBlank(config.getManagedLedgerOffloadDriver())) {
Preconditions.checkNotNull(config.getOffloadersDirectory(), "Offloader driver is configured to be '%s' but no offloaders directory is configured.", config.getManagedLedgerOffloadDriver());
this.offloaderManager = OffloaderUtils.searchForOffloaders(config.getOffloadersDirectory(), "");
LedgerOffloaderFactory offloaderFactory = this.offloaderManager.getOffloaderFactory(config.getManagedLedgerOffloadDriver());
Map<String, String> offloaderProperties = config.getOffloaderProperties();
offloaderProperties.put(OFFLOADERS_DIRECTOR, config.getOffloadersDirectory());
offloaderProperties.put(MANAGED_LEDGER_OFFLOAD_DRIVER, config.getManagedLedgerOffloadDriver());
offloaderProperties.put(MANAGED_LEDGER_OFFLOAD_MAX_THREADS, String.valueOf(config.getManagedLedgerOffloadMaxThreads()));
try {
return offloaderFactory.create(getProperties(offloaderProperties), ImmutableMap.of(LedgerOffloader.METADATA_SOFTWARE_VERSION_KEY.toLowerCase(), PulsarVersion.getVersion(), LedgerOffloader.METADATA_SOFTWARE_GITSHA_KEY.toLowerCase(), PulsarVersion.getGitSha()), getOffloaderScheduler(config));
} catch (IOException ioe) {
log.error("Failed to create offloader: ", ioe);
throw new RuntimeException(ioe.getMessage(), ioe.getCause());
}
} else {
log.info("No ledger offloader configured, using NULL instance");
return NullLedgerOffloader.INSTANCE;
}
} catch (Throwable t) {
throw new RuntimeException(t);
}
}
public ManagedLedgerConfig getManagedLedgerConfig() {
return new ManagedLedgerConfig().setLedgerOffloader(this.offloader);
}
public ManagedLedgerFactoryImpl getManagedLedgerFactory() {
return managedLedgerFactory;
}
public StatsProvider getStatsProvider() {
return statsProvider;
}
}