使用Kafka客户池是否正确?

时间:2019-03-04 10:18:32

标签: java apache-kafka kafka-consumer-api pool

有时,我需要从具有相同主题的特定偏移量的特定分区读取记录。

我可以每次创建一个新的kafka用户。但是,我可以创建使用者池并以这种方式使用它:

List<KafkaConsumer> consumers = new ArrayList<>();

// acquire consumer
KafkaConsumer consumer = consumers.get(0);
TopicPartition topicPartition = new TopicPartition("my-topic", 42);
consumer.assign(List.of(topicPartition));
consumer.seek(topicPartition, 13);

ConsumerRecords records = consumer.poll(0);
// process records
// .....

// release consumer
consumer.unsubscribe();

我应该建立消费群吗?否则效果不佳,我应该为每次使用创建新的消费者。

1 个答案:

答案 0 :(得分:0)

您只需要一个消费者。只需取消订阅,然后将其重新分配给另一个OUTER APPLY

TopicPartition