本文整理了Java中org.apache.pulsar.zookeeper.ZooKeeperChildrenCache.get()
方法的一些代码示例,展示了ZooKeeperChildrenCache.get()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZooKeeperChildrenCache.get()
方法的具体详情如下:
包路径:org.apache.pulsar.zookeeper.ZooKeeperChildrenCache
类名称:ZooKeeperChildrenCache
方法名:get
暂无
代码示例来源:origin: org.apache.pulsar/pulsar-broker
@Override
public Set<String> getAvailableBrokers() throws Exception {
return this.availableActiveBrokers.get();
}
代码示例来源:origin: org.apache.pulsar/pulsar-broker
@Override
public Set<String> getAvailableBrokers() {
try {
return availableActiveBrokers.get();
} catch (Exception e) {
log.warn("Error when trying to get active brokers", e);
return loadData.getBrokerData().keySet();
}
}
代码示例来源:origin: org.apache.pulsar/pulsar-broker
@GET
@ApiOperation(value = "Get the list of all the Pulsar clusters.", response = String.class, responseContainer = "Set")
@ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have admin permission") })
public Set<String> getClusters() throws Exception {
try {
Set<String> clusters = clustersListCache().get();
// Remove "global" cluster from returned list
clusters.remove(Constants.GLOBAL_CLUSTER);
return clusters;
} catch (Exception e) {
log.error("[{}] Failed to get clusters list", clientAppId(), e);
throw new RestException(e);
}
}
代码示例来源:origin: org.apache.pulsar/pulsar-broker
private Map<Long, Set<ResourceUnit>> getAvailableBrokers(ServiceUnitId serviceUnitId) throws Exception {
Map<Long, Set<ResourceUnit>> availableBrokers = sortedRankings.get();
// Normal case: we are the leader and we do have load reports information available
if (availableBrokers.isEmpty()) {
// Create a map with all available brokers with no load information
Set<String> activeBrokers = availableActiveBrokers.get(LOADBALANCE_BROKERS_ROOT);
List<String> brokersToShuffle = new ArrayList<>(activeBrokers);
Collections.shuffle(brokersToShuffle);
activeBrokers = new HashSet<>(brokersToShuffle);
availableBrokers = Maps.newTreeMap();
for (String broker : activeBrokers) {
ResourceUnit resourceUnit = new SimpleResourceUnit(String.format("http://%s", broker),
new PulsarResourceDescription());
availableBrokers.computeIfAbsent(0L, key -> Sets.newTreeSet()).add(resourceUnit);
}
log.info("Choosing at random from broker list: [{}]", availableBrokers.values());
}
return availableBrokers;
}
代码示例来源:origin: org.apache.pulsar/pulsar-broker
public List<String> getListOfPersistentTopics(NamespaceName namespaceName) throws Exception {
List<String> topics = Lists.newArrayList();
// For every topic there will be a managed ledger created.
try {
String path = String.format("/managed-ledgers/%s/persistent", namespaceName);
if (LOG.isDebugEnabled()) {
LOG.debug("Getting children from managed-ledgers now: {}", path);
}
for (String topic : pulsar.getLocalZkCacheService().managedLedgerListCache().get(path)) {
topics.add(String.format("persistent://%s/%s", namespaceName, Codec.decode(topic)));
}
} catch (KeeperException.NoNodeException e) {
// NoNode means there are no persistent topics for this namespace
}
topics.sort(null);
return topics;
}
代码示例来源:origin: org.apache.pulsar/pulsar-broker
protected Set<String> clusters() {
try {
Set<String> clusters = pulsar().getConfigurationCache().clustersListCache().get();
// Remove "global" cluster from returned list
clusters.remove(Constants.GLOBAL_CLUSTER);
return clusters;
} catch (Exception e) {
throw new RestException(e);
}
}
代码示例来源:origin: org.apache.pulsar/pulsar-broker
activeBrokers = availableActiveBrokers.get();
代码示例来源:origin: org.apache.pulsar/pulsar-broker
private void updateRanking() {
try {
synchronized (currentLoadReports) {
currentLoadReports.clear();
Set<String> activeBrokers = availableActiveBrokers.get();
for (String broker : activeBrokers) {
try {
String key = String.format("%s/%s", LOADBALANCE_BROKERS_ROOT, broker);
LoadReport lr = loadReportCacheZk.get(key)
.orElseThrow(() -> new KeeperException.NoNodeException());
ResourceUnit ru = new SimpleResourceUnit(String.format("http://%s", lr.getName()),
fromLoadReport(lr));
this.currentLoadReports.put(ru, lr);
} catch (Exception e) {
log.warn("Error reading load report from Cache for broker - [{}], [{}]", broker, e);
}
}
updateRealtimeResourceQuota();
doLoadRanking();
}
} catch (Exception e) {
log.warn("Error reading active brokers list from zookeeper while re-ranking load reports [{}]", e);
}
}
代码示例来源:origin: org.apache.pulsar/pulsar-broker
@GET
@Path("/{cluster}/failureDomains")
@ApiOperation(value = "Get the cluster failure domains", response = FailureDomain.class, responseContainer = "Map")
@ApiResponses(value = { @ApiResponse(code = 403, message = "Don't have admin permission") })
public Map<String, FailureDomain> getFailureDomains(@PathParam("cluster") String cluster) throws Exception {
validateSuperUserAccess();
Map<String, FailureDomain> domains = Maps.newHashMap();
try {
final String failureDomainRootPath = pulsar().getConfigurationCache().CLUSTER_FAILURE_DOMAIN_ROOT;
for (String domainName : failureDomainListCache().get()) {
try {
Optional<FailureDomain> domain = failureDomainCache()
.get(joinPath(failureDomainRootPath, domainName));
if (domain.isPresent()) {
domains.put(domainName, domain.get());
}
} catch (Exception e) {
log.warn("Failed to get domain {}", domainName, e);
}
}
} catch (KeeperException.NoNodeException e) {
log.warn("[{}] Failure-domain is not configured for cluster {}", clientAppId(), cluster, e);
return Collections.emptyMap();
} catch (Exception e) {
log.error("[{}] Failed to get failure-domains for cluster {}", clientAppId(), cluster, e);
throw new RestException(e);
}
return domains;
}
代码示例来源:origin: org.apache.pulsar/pulsar-broker
try {
final String failureDomainRootPath = pulsar().getConfigurationCache().CLUSTER_FAILURE_DOMAIN_ROOT;
for (String domainName : failureDomainListCache().get()) {
if (inputDomainName.equals(domainName)) {
continue;
代码示例来源:origin: org.apache.pulsar/pulsar-broker
private void refreshBrokerToFailureDomainMap() {
if (!pulsar.getConfiguration().isFailureDomainsEnabled()) {
return;
}
final String clusterDomainRootPath = pulsar.getConfigurationCache().CLUSTER_FAILURE_DOMAIN_ROOT;
try {
synchronized (brokerToFailureDomainMap) {
Map<String, String> tempBrokerToFailureDomainMap = Maps.newHashMap();
for (String domainName : pulsar.getConfigurationCache().failureDomainListCache().get()) {
try {
Optional<FailureDomain> domain = pulsar.getConfigurationCache().failureDomainCache()
.get(clusterDomainRootPath + "/" + domainName);
if (domain.isPresent()) {
for (String broker : domain.get().brokers) {
tempBrokerToFailureDomainMap.put(broker, domainName);
}
}
} catch (Exception e) {
log.warn("Failed to get domain {}", domainName, e);
}
}
this.brokerToFailureDomainMap = tempBrokerToFailureDomainMap;
}
log.info("Cluster domain refreshed {}", brokerToFailureDomainMap);
} catch (Exception e) {
log.warn("Failed to get domain-list for cluster {}", e.getMessage());
}
}
}
代码示例来源:origin: org.apache.pulsar/pulsar-proxy
/**
* Initialize ZooKeeper session and creates broker cache list
*
* @param zookeeperServers
* @throws Exception
*/
public ZookeeperCacheLoader(ZooKeeperClientFactory factory, String zookeeperServers, int zookeeperSessionTimeoutMs) throws Exception {
this.zkClient = factory.create(zookeeperServers, SessionType.AllowReadOnly, zookeeperSessionTimeoutMs).get();
this.localZkCache = new LocalZooKeeperCache(zkClient, this.orderedExecutor);
this.brokerInfo = new ZooKeeperDataCache<LoadManagerReport>(localZkCache) {
@Override
public LoadManagerReport deserialize(String key, byte[] content) throws Exception {
return ObjectMapperFactory.getThreadLocal().readValue(content, LoadManagerReport.class);
}
};
this.availableBrokersCache = new ZooKeeperChildrenCache(getLocalZkCache(), LOADBALANCE_BROKERS_ROOT);
this.availableBrokersCache.registerListener((path, brokerNodes, stat) -> {
try {
updateBrokerList(brokerNodes);
} catch (Exception e) {
log.warn("Error updating broker info after broker list changed.", e);
}
});
// Do initial fetch of brokers list
try {
updateBrokerList(availableBrokersCache.get());
} catch (NoNodeException nne) { // can happen if no broker started yet
updateBrokerList(Collections.emptySet());
}
}
代码示例来源:origin: org.apache.pulsar/pulsar-discovery-service
updateBrokerList(availableBrokersCache.get());
代码示例来源:origin: org.apache.pulsar/pulsar-broker
protected List<String> internalGetList() {
validateAdminAccessForTenant(namespaceName.getTenant());
// Validate that namespace exists, throws 404 if it doesn't exist
try {
policiesCache().get(path(POLICIES, namespaceName.toString()));
} catch (KeeperException.NoNodeException e) {
log.warn("[{}] Failed to get topic list {}: Namespace does not exist", clientAppId(), namespaceName);
throw new RestException(Status.NOT_FOUND, "Namespace does not exist");
} catch (Exception e) {
log.error("[{}] Failed to get topic list {}", clientAppId(), namespaceName, e);
throw new RestException(e);
}
List<String> topics = Lists.newArrayList();
try {
String path = String.format("/managed-ledgers/%s/%s", namespaceName.toString(), domain());
for (String topic : managedLedgerListCache().get(path)) {
if (domain().equals(TopicDomain.persistent.toString())) {
topics.add(TopicName.get(domain(), namespaceName, decode(topic)).toString());
}
}
} catch (KeeperException.NoNodeException e) {
// NoNode means there are no topics in this domain for this namespace
} catch (Exception e) {
log.error("[{}] Failed to get topics list for namespace {}", clientAppId(), namespaceName, e);
throw new RestException(e);
}
topics.sort(null);
return topics;
}
内容来源于网络,如有侵权,请联系作者删除!