2017-06-21 273 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);