2017-06-21 351 views
2
consumer.subscribe(Pattern.compile(".*"),new ConsumerRebalanceListener() { 
      @Override 
      public void onPartitionsRevoked(Collection<TopicPartition> clctn) { 

      } 

      @Override 
      public void onPartitionsAssigned(Collection<TopicPartition> clctn) { 
      }    
     }); 

如何在apache/kafka中使用正则表达式消耗所有主题? 我试过上面的代码,但它没有奏效。卡夫卡多个主题消费

+1

如果你解释了_how_它没有用,这将是有帮助的。你希望发生什么,发生了什么? –

+0

我想查看所有主题的日志。例如,如果我编写Pattern.compile(“abc_log”)而不是Pattern.compile(“。*”),则可以看到有关abc_log的日志。但我希望看到与所有主题相关的所有日志。 – EngineerSSA

回答

1

为正则表达式使用下面的签名

KafkaConsumer.subscribe(Pattern pattern, ConsumerRebalanceListener listener) 

例如下面的代码片段使消费者能够听到前缀为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);