我有一个有 25 个分区的 kafka 主题,集群已经运行了 5 个月。
根据我对给定主题的每个分区的理解,偏移量从 0,1,2...(无界)开始
我看到 log-end-offset 的值非常高(现在 -> 1230628032)
我创建了一个新的消费者组,偏移量设置为最早;所以我预计该消费者组的客户端将从偏移量 0 开始的偏移量。
我用来创建一个偏移到最早的新消费者组的命令:
kafka-consumer-groups --bootstrap-server <IP_address>:9092 --reset-offsets --to-earliest --topic some-topic --group to-earliest-cons --execute
Run Code Online (Sandbox Code Playgroud)
我看到正在创建的消费者组。我预计当前偏移为 0;然而,当我描述消费者群体时,当前的偏移量非常高,目前 --> 1143755193。
设置的记录保留期为 7 天(标准值)。
我的问题是为什么我们没有看到来自这个消费者组的消费者将读取 0 的第一个偏移量?它与数据保留有关吗?
任何人都可以帮助理解这一点吗?
小智 6
这正是数据保留。Kafka 很可能已经从您的分区中删除了偏移量为 0 的旧消息,因此从 0 开始是没有意义的。相反,Kafka 会将偏移量设置为您分区上最早的可用消息。您可以使用以下方法检查这些偏移量:
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list <IP_address>:9092 --topic some-topic --time -2
Run Code Online (Sandbox Code Playgroud)
您可能会看到非常接近您所看到的新消费者抵消的值。
您还可以尝试将偏移显式设置为 0:
./kafka-consumer-groups.sh --bootstrap-server <IP_address>:9092 --reset-offsets --to-offset 0 --topic some-topic --group to-earliest-cons --execute
Run Code Online (Sandbox Code Playgroud)
但是,您将看到偏移 0 不存在的警告,它将使用更高的值(上述最早的可用消息)
New offset (0) is lower than earliest offset for topic partition some-topic. Value will be set to 1143755193
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1861 次 |
| 最近记录: |