美文网首页
【日更挑战】解决Kafka的Offset越界问题(解决)

【日更挑战】解决Kafka的Offset越界问题(解决)

作者: 扁圆柱体 | 来源:发表于2021-07-05 21:52 被阅读0次

日更挑战当前排名:第94天,第3065名,较昨日前进39名。

接着昨天的话题,先说结论吧。折腾半天,是公司这个项目,采用了自己存offset的方式,即使用一个mysql数据库进行offset管理,而这个Scala程序由于长期没有使用,导致数据库和Kafka内部记录的有差距,才会有这个越界异常。

修改也比较简单,用update语句把最新的offset加入到数据库表中即可。重启程序,问题解决。

这里还想说一下昨天提到的Kafka的topic没有offset信息的问题。原来Kafka支持两种存Offset的方式,一种是老的用zk存,一种是用一个特殊的topic存。在用户组上也是同样的,所以用kafka-consumer-group工具查看用户组时就有一定的技巧了。

$ #列出所有group(新消费者),zk中看不到新消费者的组
$ /opt/cloudera/parcels/KAFKA/bin/kafka-consumer-groups --bootstrap-server localhost:9092 –list
$ #列出所有group(老消费者)
$ /opt/cloudera/parcels/KAFKA/bin/kafka-consumer-groups –zookeeper localhost:8121 –list

第一种方法为新消费者,则使用了特殊的topic来记录offset;第二种方法为老消费者,则读取了zk中的数据(实地验证确实是的,这就是昨天的疑问)。

两者的区别分别是使用--bootstrap-server还是使用--zookeeper来list。

至于如何获取这种新消费者Kafka的offset,上篇最后已经说了,方式就是用run kafka class去通过内置管理程序获取。

这种新老消费者还是挺坑的,不过通过一个实际问题,对Kafka的认识也加深了。

相关文章

网友评论

      本文标题:【日更挑战】解决Kafka的Offset越界问题(解决)

      本文链接:https://www.haomeiwen.com/subject/osliultx.html