kafka 消费指定分区数据

本文详细介绍了如何创建Kafka消费者,包括配置bootstrap.server、数据序列化、设置消费起点、自动提交offset以及指定消费组。通过这些步骤,读者可以理解如何从Kafka主题中拉取并消费消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建kafka消费者的代码如下:

1、构建配置参数

    1.1 配置bootstrap.server 参数:hadoop102:9092--------指定kafka集群的地址,可以写多个,防止这个节点宕机无法运行

    1.2 配置kafka接受的数据的k-v值的序列化参数

 props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
 props.put("value.deserializer","org.apache.kafka.common.serialization.StringDeserializer");

  1.3 指定读取的数量(已经消费了100条)是从已经提交的offset(100)开始读取还是继续从最新的位置开始读取(此时里面在100之后,又新增了400条数据,但是从最新的数据开始读取的位置就是400+100开始读取)

props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");

  1.4 指定提交分区的offset是自动提交还是手动提交

props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true);

1.5 指定消费的消费组《必须在消费的时候去指定》

props.put(ConsumerConfig.GROUP_ID_CONFIG, "CONF");

2、创建kafka consumer消费对象

 KafkaConsumer<Object, Object> consumer = new KafkaConsumer<>(props);

3、指定consumer消费的主题

 consumer.subscribe(Arrays.asList("test01"));

4、拉取数据

 ConsumerRecords<Object, Object> records = consumer.poll(100);

 

 

Kafka是一款分布式的流处理平台,可以用来处理大规模的实时数据流。在Kafka中,消息以主题(topic)的形式进行存储和组织,而主题又被划分为多个分区(partition)。 消费者(consumer)可以从指定分区中读取消息。消费者可以通过指定分区编号或者分区副本所在的主机地址来消费特定分区的消息。 当我们需要消费指定分区时,可以按照以下步骤进行操作: 首先,创建一个Kafka消费者对象,在创建消费者时,需要指定消费者组ID和消费者配置参数。 然后,指定消费分区Kafka提供了两种方式进行分区指定: 1. 通过指定分区编号:可以通过`assign()`方法将指定分区编号传递给消费者。例如,`consumer.assign(Collections.singleton(new TopicPartition("topicName", 1)));`表示将消费指定消费主题名为"topicName"下分区编号为1的分区的消息。 2. 通过指定主机地址:可以通过`assign()`方法将指定的主机地址传递给消费者。例如,`consumer.assign(Collections.singleton(new TopicPartition("topicName", new Node(1, "hostName", 9092))));`表示将消费指定消费主题名为"topicName"下分区副本所在的主机为"hostName",端口号为9092的分区的消息。 最后,通过调用`poll()`方法来获取指定分区的消息。消费者会从指定分区的最新消息位置开始读取消息,并持续地从该分区获取新的消息。 需要注意的是,在消费者中指定分区后,消费者只会读取该分区的消息,并忽略其他分区的消息。如果需要消费多个分区的消息,可以重复调用`assign()`方法来指定多个分区。 以上就是使用Kafka消费指定分区的简要介绍,希望对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值