报错内容
Exception in thread "main" java.lang.IllegalStateException: Subscription to topics, partitions and pattern are mutually exclusive
at org.apache.kafka.clients.consumer.internals.SubscriptionState.setSubscriptionType(SubscriptionState.java:111)
at org.apache.kafka.clients.consumer.internals.SubscriptionState.assignFromUser(SubscriptionState.java:164)
at org.apache.kafka.clients.consumer.KafkaConsumer.assign(KafkaConsumer.java:1060)
at com.wufabao.kafka.demo.MyOffsetManager.main(MyOffsetManager.java:49)
原因
Kafka手动分区分配assign(Collection)不能和自动分区分配subscribe(Collection, ConsumerRebalanceListener)一起使用
解决方案
如果使用自动分区分配,那就不要使用手动分区分配,反之亦然,两者不可同时使用,使用一种方法,就注释掉另一种方法。 如使用手动分区分配,那么注释掉自动分区分配。
// consumer.subscribe(Collections.singleton("tp_demo_01"));
final Set<TopicPartition> assignment1 = consumer.assignment();
for (TopicPartition partition : assignment1) {
System.out.println(partition);
}
|