【发布时间】:2019-06-17 15:27:13
【问题描述】:
我正在尝试使用assign() 方法来使用来自多个主题的消息。通过我的实现,有时我可以使用来自所有主题的消息,而其他时候只能使用一个主题。经过一番研究,我发现 Kafka 默认使用 Range 分配器。因此它不会总是分配所有分区。
对于我的用例,我应该能够使用所有主题和分区。
我尝试过设置 RoundRobin 分配器。但这并没有帮助
List<TopicPartition> topicPartitions = new ArrayList<>();
KafkaConsumer kafkaConsumer = new KafkaConsumer<>(consumerConfig);
for (String topic : topics) {
topicPartitions.add(new TopicPartition(topic, 0);
}
kafkaConsumer.assign(topicPartitions);
ConsumerRecords<String, String> records = kafkaConsumer.poll(600);`
【问题讨论】:
标签: java apache-kafka kafka-consumer-api