本文整理了Java中pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperTopicRepository
类的一些代码示例,展示了ZookeeperTopicRepository
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZookeeperTopicRepository
类的具体详情如下:
包路径:pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperTopicRepository
类名称:ZookeeperTopicRepository
暂无
代码示例来源:origin: allegro/hermes
@Override
public TopicRepository provide() {
return new ZookeeperTopicRepository(zookeeper, mapper, paths, groupRepository);
}
代码示例来源:origin: allegro/hermes
@Override
public void removeTopic(TopicName topicName) {
ensureTopicExists(topicName);
ensureTopicIsEmpty(topicName);
logger.info("Removing topic: " + topicName);
remove(paths.topicPath(topicName));
}
代码示例来源:origin: allegro/hermes
@Override
public List<Topic> listTopics(String groupName) {
return listTopicNames(groupName).stream()
.map(name -> getTopicDetails(new TopicName(groupName, name), true))
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());
}
代码示例来源:origin: allegro/hermes
private Optional<Topic> getTopicDetails(TopicName topicName, boolean quiet) {
ensureTopicExists(topicName);
return readFrom(paths.topicPath(topicName), Topic.class, quiet);
}
}
代码示例来源:origin: allegro/hermes
@Override
public void touchTopic(TopicName topicName) {
ensureTopicExists(topicName);
logger.info("Touching topic: " + topicName.qualifiedName());
touch(paths.topicPath(topicName));
}
代码示例来源:origin: allegro/hermes
private void ensureTopicIsEmpty(TopicName topicName) {
List<String> children = childrenOf(paths.subscriptionsPath(topicName));
boolean anyNodeNotEmpty = children.stream()
.anyMatch(sub -> !isEmpty(paths.subscriptionsPath(topicName) + "/" + sub));
if (!children.isEmpty() && anyNodeNotEmpty) {
throw new TopicNotEmptyException(topicName);
}
}
代码示例来源:origin: allegro/hermes
@Override
public void updateTopic(Topic topic) {
ensureTopicExists(topic.getName());
logger.info("Updating topic: " + topic.getName());
overwrite(paths.topicPath(topic.getName()), topic);
}
代码示例来源:origin: allegro/hermes
@Override
public Topic getTopicDetails(TopicName topicName) {
return getTopicDetails(topicName, false).get();
}
代码示例来源:origin: allegro/hermes
@Override
public boolean topicExists(TopicName topicName) {
return pathExists(paths.topicPath(topicName));
}
代码示例来源:origin: allegro/hermes
@Override
public List<String> listTopicNames(String groupName) {
groupRepository.ensureGroupExists(groupName);
return childrenOf(paths.topicsPath(groupName));
}
代码示例来源:origin: allegro/hermes
@Override
public List<Topic> getTopicsDetails(Collection<TopicName> topicNames) {
return topicNames.stream()
.map(topicName -> getTopicDetails(topicName, true))
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());
}
代码示例来源:origin: allegro/hermes
@Bean
TopicRepository topicRepository() {
return new ZookeeperTopicRepository(storageZookeeper(), objectMapper, zookeeperPaths(), groupRepository());
}
代码示例来源:origin: allegro/hermes
@Override
public boolean isSubscribingRestricted(TopicName topicName) {
return getTopicDetails(topicName).isSubscribingRestricted();
}
代码示例来源:origin: allegro/hermes
ConsumerTestRuntimeEnvironment(Supplier<CuratorFramework> curatorSupplier) {
this.paths = new ZookeeperPaths("/hermes");
this.curatorSupplier = curatorSupplier;
this.curator = curatorSupplier.get();
this.groupRepository = new ZookeeperGroupRepository(curator, objectMapper, paths);
this.topicRepository = new ZookeeperTopicRepository(curator, objectMapper, paths, groupRepository);
this.subscriptionRepository = new ZookeeperSubscriptionRepository(
curator, objectMapper, paths, topicRepository
);
this.configFactory = new MutableConfigFactory()
.overrideProperty(CONSUMER_WORKLOAD_REBALANCE_INTERVAL, 1)
.overrideProperty(CONSUMER_WORKLOAD_CONSUMERS_PER_SUBSCRIPTION, 2);
this.consumersRegistry = new ConsumerNodesRegistry(
curator, executorService, paths.consumersRegistryPath(CLUSTER_NAME), "id",
DEATH_OF_CONSUMER_AFTER_SECONDS, Clock.systemDefaultZone());
this.metricsSupplier = () -> new HermesMetrics(new MetricRegistry(), new PathsCompiler("localhost"));
try {
consumersRegistry.start();
} catch (Exception e) {
throw new InternalProcessingException(e);
}
}
内容来源于网络,如有侵权,请联系作者删除!