kafka中Topic、消费组以及消息状态详解
Kafka中Topic、消费者组状态详解
1. topic状态详解
① topic名称
② topic分区总数
③ topic副本总数
④ topic配置,包含老化时间、老化大小、分段大小配置。topic分区是以分段文件大小去老化,一段文件的消息时间满足老化时间或老化的大小,则该该段文件老化。
⑤ topic分区,分区以0开始
⑥ topic 分区的leader id,leader id从isr中选取,leader为none时表示,topic分区无leader,topic不可用。
⑦ topic分区的副本列表,数量等于副本总数
⑧ topic分区的isr 列表,isr为leader的候选列表,数量小于等于副本列表数量,isr代表副本已经完成从leader到其他副本间的数据同步,可以作为leader的候选列表。
2. 消费组状态详解
① 消费组名称
② 订阅的topic名称
③ PARTITION 表示topic 分区id
④ CURRENT-OFFSET 代表消费者已消费该topic-分区的进度。消费者poll消息,并commit才会刷新该值。
⑤ LOG-END-OFFSET 代表该topic-分区消息的高水位。表示该topic-分区已有的消息数量。
⑥ LAG 消费挤压。表示消费者对该topic-分区的消费积压情况,还剩多少条未消费。LAG = LOG-END-OFFSET - CURRENT-OFFSET, LAG为0,表示该topic-分区无积压。
⑦ CONSUMER-ID。消费者id,唯一id对应一个消费者,一般对应业务的一个消费线程。通常情况下,业务的消费线程不断的循环poll消息,消费者id也一直在组里。
⑧ CONSUMER-ID 为 “-”。CONSUMER-ID 为 “-” 为异常场景,可理解为消费者已经离开消费组。一般情况下,为业务消费线程已不再消费,此时业务应该排查自己的消费线程是否不再拉取消息,甚至是否线程已跑飞。
3.生产的消息状态详解
业务经常会有消息有没有生产成功的疑问,从业务日志上看,业务充分捕获异常消息,生产消息未发生异常,消息一般生产成功。如还有疑问可以进行如下步骤进行确认。
3.1 查看topic-分区的文件信息
① log文件为testtopic1的分区2的数据文件。
业务可根据log文件的最后修改时间判断是否生产成功,与业务生产消息时间一致,即生产成功。
② kafka topic数据的目录
3.2 利用脚本解析数据文件,查看具体消息体内容。解析topic文件,查看解析内容。
① 解析消息命令
② offset: 具体某条生产成功的消息的offset
③ CreateTime:该条消息的落盘时间
④ compressType:压缩算法
⑤ headerKeys:消息头
⑥ payload :生产的消息内容。业务直接关心的消息内容
更多推荐
所有评论(0)