kafka 偏移量latest、earliest

earliest

如果一个消费者之前提交过offset。 假设这个消费者中途断过,那当它恢复之后重新连接到队列集群 此时应该是从 它在集群中之前提交的offset点开始继续消费,而不是从头消费。 而一个消费者如果之前没有offset记录并设置earliest ,此时才会从头消费。

按照栗子来说就是 之前订过1月份的报纸(存在offset记录)然后设置earliest此时是不管用的,报社还是会给你发1月之后的报纸(不会从头消费),而如果你是一个新用户(不存在offset) 当你订阅报纸并设置earliest 此时报社才会从头开始发送所有的报纸。

latest

当集群中存在消费者之前提交的offset记录时 队列集群会从之前记录的offset点开始发送 「记录的offset点,+无穷」。 而当消费者之前在集群中不存在offset记录点时 会从队列中最新的记录开始消费。

按照栗子来说就是 之前订过1月份的报纸(存在offset记录)然后设置latest,报社会给你发1月之后的报纸,而如果你是一个新用户(不存在offset) 当你订阅报纸并设置latest 此时报社会发送最新的报纸。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你可以通过配置文件或者代码来设置 Kafka偏移量。下面是两种常见的偏移量设置方式: 1. 通过配置文件设置偏移量:在 Kafka 的配置文件 `server.properties` 中,可以设置以下两个参数来配置消费者的偏移量: - `auto.offset.reset`:表示当消费者启动时,如果找不到该消费者组的偏移量或者偏移量无效时,应该如何处理。可选的值包括 "latest"(从最新的消息开始消费)和 "earliest"(从最早的消息开始消费)。 - `offsets.topic.replication.factor`:表示保存偏移量的内部主题(__consumer_offsets)的副本数量。 你可以根据需求修改这些参数的值,并重启 Kafka 以使其生效。 2. 通过代码设置偏移量:如果你使用的是 Kafka 的 Java 客户端,你可以使用 KafkaConsumer 对象来设置偏移量。具体步骤如下: - 创建一个 KafkaConsumer 对象,并指定消费者组和相关的配置。 - 使用 `assign()` 方法为消费者分配要消费的分区,并指定分区的偏移量。 - 使用 `seek()` 方法来设置分区的偏移量。 以下是一个简单示例代码: ```java Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "my-consumer-group"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); TopicPartition partition = new TopicPartition("my-topic", 0); consumer.assign(Collections.singletonList(partition)); consumer.seek(partition, 10); ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100)); // 处理接收到的消息 consumer.close(); ``` 上述代码中,我们将消费者组设置为 "my-consumer-group",并通过 `assign()` 方法将消费者分配到 "my-topic" 的第一个分区,并设置偏移量为 10。 请根据你的实际需求选择适合的方式来设置 Kafka偏移量

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值