Kafka consumer for multiple topic

前端 未结 2 987
栀梦
栀梦 2021-01-01 10:18

I have a list of topics (for now it\'s 10) whose size can increase in future. I know we can spawn multiple threads (per topic) to consume from each topic, but in my case if

2条回答
  •  失恋的感觉
    2021-01-01 10:30

    We can subscribe for multiple topic using following API : consumer.subscribe(Arrays.asList(topic1,topic2), ConsumerRebalanceListener obj)

    Consumer has the topic info and we can comit using consumer.commitAsync or consumer.commitSync() by creating OffsetAndMetadata object as follows.

    ConsumerRecords records = consumer.poll(long value);
    for (TopicPartition partition : records.partitions()) {
        List> partitionRecords = records.records(partition);
        for (ConsumerRecord record : partitionRecords) {
            System.out.println(record.offset() + ": " + record.value());
        }
        long lastOffset = partitionRecords.get(partitionRecords.size() - 1).offset();
        consumer.commitSync(Collections.singletonMap(partition, new OffsetAndMetadata(lastOffset + 1)));
    }
    

提交回复
热议问题