Kafka多主题消费

Eng*_*SSA 5 regex wildcard apache-kafka kafka-consumer-api

   consumer.subscribe(Pattern.compile(".*"),new ConsumerRebalanceListener() {
            @Override
            public void onPartitionsRevoked(Collection<TopicPartition> clctn) {

            }

            @Override
            public void onPartitionsAssigned(Collection<TopicPartition> clctn) {
            }            
        });
Run Code Online (Sandbox Code Playgroud)

如何在 apache/kafka 中使用正则表达式使用所有主题?我尝试了上面的代码,但它不起作用。

Bit*_*sky 3

对于正则表达式,请使用以下签名

KafkaConsumer.subscribe(Pattern pattern, ConsumerRebalanceListener listener)
Run Code Online (Sandbox Code Playgroud)

例如,以下代码片段使消费者能够收听带有前缀的所有主题my_topics_

ConsumerRebalanceListener listener = new ConsumerRebalanceListener() {

  @Override
  public void onPartitionsRevoked(Collection<TopicPartition> arg0) {
    // Don't need it now.
  }

  @Override
  public void onPartitionsAssigned(Collection<TopicPartition> arg0) {
    // Don't need it now.
  }
};

pattern = Pattern.compile("my_topics_.*");
kafkaConsumer.subscribe(pattern, listener);
Run Code Online (Sandbox Code Playgroud)

  • 这还会在运行时检测到任何新主题的创建吗? (2认同)