提交和偏移量
本文介绍kafka消费者非常重要的内容-提交和偏移量,介绍前,我们先弄清楚两个基本概念和面临的问题:
一:基本概念
- 提交:把更新分区当前位置的操作叫做提交。
- 消费者偏移量:保存已经处理的每个分区的偏移量。
二:面临的问题
-
消息被重复处理:提交的偏移量小于客户端处理的最后一个消息的偏移量,那么处于两个偏移量之间的消息就会被重复处理。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200425231552132.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pqcGRkMTAyMw==,size_16,color_FFFFFF,t_70)
-
消息丢失:如果提交的偏移量大于客户端处理的最后一个消息的偏移量,那么处于两个偏移量之间的消息就会丢失。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200425231728133.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pqcGRkMTAyMw==,size_16,color_FFFFFF,t_70)
所以,处理偏移量的方式对客户端会有很大的影响。KafkaConsumer API提供了很多种方式来提交偏移量。
自动提交