06. KafkaConsumer是如何处理过期offset(越界offset)请求

06. KafkaConsumer是如何处理过期offset(越界offset)请求

该篇文章是基于以下的条件编写完成的

1. Kafka cluster集群版本0.10.0

2. 提前创建好了一个单partition,单副本的topic:kafka.log.retention

3. Kafka log清理策略配置log.retention.minutes=10,该配置的作用是清理掉当前时间减去日志段中最新时间的差值,如果大于10分钟,就将删除过期的日志段

接下来我们基于以下的步骤演示:

1. 编写程序向topic:kafka.log.retention中发送10条数据

01

输出结果

02

我们可以看到发送数据后最新时间是21:45,大概将在21:55的时候生成新的日志段文件

03

2. 我们消费其中的两条数据,并且commit offset:1

以下是KafkaConsumer的相关参数配置

04
05

消费的两条数据打印格式为:offset:key:value

06

通过以上的程序我们看到,并且同步提交了offset到kafka server端

3. 我们等10分钟时间,日志段将被清理

07

我们看到准时在21:55生成了新的日志段

4. 接下来我们再使用上面的消费程序接着消费数据

由于我们之前消费到了offset=1的地方,接下来要开始消费offset=2的数据,其实我们从第三步可以看到offset从2到9的数据已经被删除了,接下来我们看kafka是如何处理的

我们看到ApiKeys.FETCH请求offset=1,服务器会从>1的offset返回数据也就是offset=2

08

请求的响应如下图:

09

我们看到服务器返回了Errors.OFFSET_OUT_OF_RANGE(offset越界)的错误,由于我们设置了默认的offset重置策略,接下来会根据重置策略重新设置消费组获取数据的起始offset

10

会通过该方法重新获取起始offset

11

由于我们设置的策略是properties.put("auto.offset.reset", "earliest");所以从最早的offset开始,目前最早的offset=10

5. 我们将重置策略设置成:none

properties.put("auto.offset.reset", " none")

接着执行上面第4步的消费操作,kafka的client会怎样处理呢?

12

我们看到传递参数中的offset还是1

13

我们看到此时的fetch响应走到了else的分支

会在接下来走到该代码

14

会在该方法中抛出异常OffsetOutOfRangeException

15

堆栈异常

16

总结

通过我们上面的试验,我们发现不同的offset重置策略对kafka-client对过期请求的响应方式是不同的

Offse重置策略一共有三种:"latest", "earliest", "none"

"latest", "earliest"不影响程序的正常运行,会打印相关的offset越界日志

"none"会直接抛出OffsetOutOfRangeException异常

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容