Kafka消费者消费规则
- 消费者消费Kafka中的Topic根据Offset进行消费,每次从上一次的位置+1继续消费
- 第一次消费规则:由属性决定
auto.offset.reset=latest | earliest
latest:默认的值,从Topic每个分区的最新的位置开始消费
earliest:从最早的位置开始消费,每个分区的offset为0开始消费
-
第二次消费开始:根据上一次消费的Offset位置+1继续进行消费
Kafka消费者消费过程中存在的问题
问题1:
消费者如何知道上一次消费的位置是什么?
每个消费者都将自己上一次消费的offset记录自己的内存中
问题2:
如果因为网络资源等原因,消费者故障了,重启消费者,原来内存中offset就没有了,消费者怎么知道上一次消费的位置?
- Kafka Offset偏移量管理
-
Kafka将每个消费者消费的位置主动记录在一个Topic中:
__consumer_offsets
,它记录了每个消费者这一次要消费的位置 -
如果下次消费者没有给定请求offset,kafka就根据自己记录的offset来提供消费的位置
- 提交规则:根据时间自动提交
props.setProperty("enable.auto.commit", "true");//是否自动提交offset
props.setProperty("auto.commit.interval.ms", "1000");//提交的间隔时间
版权声明:本文为zh2475855601原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。