初识kafka 之 指定offset位置开始消费
关键字
kafkaConsumer.seek(topicPartition,100); // 指定offset
实现代码
package com.lzh.kafka; import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.common.TopicPartition; import org.apache.kafka.common.serialization.StringDeserializer; import java.time.Duration; import java.util.ArrayList; import java.util.HashSet; import java.util.Properties; import java.util.Set; // kafka消费者 任意指定 offset 位移开始消费 public class CustomConsumer指定offset位置开始消费 { public static void main(String[] args) { // 0 配置 Properties properties = new Properties(); // 连接到服务器 properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,"bigdata01:9092,bigdata02:9092"); // 反序列化 properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,StringDeserializer.class.getName()); // 添加groupid,必须 properties.put(ConsumerConfig.GROUP_ID_CONFIG,"test"); // 1 创建一个消费者对象 KafkaConsumer<String, String> kafkaConsumer = new KafkaConsumer<String, String>(properties); // 2 订阅主题 ArrayList<String> topics = new ArrayList<String>(); topics.add("Mytopic"); kafkaConsumer.subscribe(topics); // 注册要消费的主题(可以消费多个主题) // 指定位置开始消费 Set<TopicPartition> assignment= new HashSet<>(); while (assignment.size() == 0) { kafkaConsumer.poll(Duration.ofSeconds(1)); // 获取消费者分区分配信息(有了分区分配信息才能开始消费) assignment = kafkaConsumer.assignment(); } // 遍历所有分区,并指定 offset 从 100 的位置开始消费 for (TopicPartition topicPartition : assignment) { kafkaConsumer.seek(topicPartition,100); // 指定offset } // 3 消费数据 // 一直获取消费数据 while (true){ ConsumerRecords<String, String> consumerRecords = kafkaConsumer.poll(Duration.ofSeconds(1)); for (ConsumerRecord<String, String> consumerRecord : consumerRecords) { System.out.println(consumerRecord); } } } }
世风之狡诈多端,到底忠厚人颠扑不破;
末俗以繁华相尚,终觉冷淡处趣味弥长。
posted on 2022-04-15 16:36 Simple-Sir 阅读(3025) 评论(0) 编辑 收藏 举报