1. 面试流程简介
腾讯视频面试的是实习,一般只有两轮技术面,腾讯视频面试感觉算法比较简单,但是对实际项目经验要求比较高.腾讯视频面试除了介绍项目经验之外,总共问了5道题.3道实际操作题目,2道算法题.其中比较有趣的一道的kafka过期消费问题.
2. 题目概述
请介绍一下kafka过期消费问题以及解决方法.
3. 解题思路及代码
解决这个问题需要对kafka有基本的了解,kafka的基本原理可以见文章kafka工作原理.
在kafka中,真正存储消息的模块叫做pation,一个partion是一个追加文件,每条消息都对应文件中的一个offset.
一个broker会记录消息队列中最早的消息的offset,这个值用earlieastLeaderOffsets来表示,记为A.一个consumer也会记录当前消费消息的offset,用consumerOffsets表示,记为B.正常情况下,消费者消息消息的偏移量应该大于broker中最早消息的偏移量,即A<B,如下图所示.但是broker有清理过期消息的机制,如果consumer读取速度比较慢,就会导致A>B,即消费者还未读取的消息被broker清理了.这就会带来过期消费的问题.
知道了它产生的原因以后,解决方法也就显而易见了.解决方法是broker清理消息时候读取消费者的offset,保证清理的消息offset小于消息者消费消息的offset.
4. 更多题目
腾讯视频2019实习面试所有题目见链接腾讯视频面试题
来源:CSDN
作者:wxwjyq
链接:https://blog.csdn.net/wxwjyq/article/details/104116362