pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperTopicRepository类的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(4.1k)|赞(0)|评价(0)|浏览(134)

本文整理了Java中pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperTopicRepository类的一些代码示例,展示了ZookeeperTopicRepository类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZookeeperTopicRepository类的具体详情如下:
包路径:pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperTopicRepository
类名称: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);
  }
}

相关文章

ZookeeperTopicRepository类方法