zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day06】——Kafka4

2023-04-18 13:07:20 时间

本栏目大数据开发岗高频面试题主要出自大数据技术专栏的各个小专栏,由于个别笔记上传太早,排版杂乱,后面会进行原文美化、增加。

不要急着往下滑,默默想5min,看看这5道面试题你都会吗?

面试题 01、为什么要设计Segment?
面试题02、什么是AR、ISR、OSR?
面试题 03、什么是HW、LEO?
面试题04、什么是一次性语义?
面试题05、Kafka如何保证消费者消费数据不重复不丢失?

以下答案仅供参考:

文章目录

面试题 01、为什么要设计Segment?

•加快查询效率:将数据划分到多个小文件中,通过offset匹配可以定位某个文件,从小数据量中找到需要的数据 •提高删除性能:以Segment为单位进行删除,避免以每一条数据进行删除,影响性能

面试题02、什么是AR、ISR、OSR?

•AR:all replicas –所有副本 = ISR + OSR •ISR:In-sync-replicas –表示正在同步的副本 =》 可用副本分区 –如果Leader故障,会从ISR中选举一个新的leader •OSR:Out-sync-replicas –表示不健康的副本 =》 不可用副本 –判断依据 #如果这个从副本在这个时间内没有与leader副本同步数据,认为这个副本是不正常的 参数设置: replica.lag.time.max.ms = 10000

面试题 03、什么是HW、LEO?

•HW:表示当前leader副本中所有Follower都已经同步的位置 + 1,高水位线 •LEO:表示当前leader副本最新的数据位置 + 1 •消费者能消费到的位置是HW:为了保证消费者消费分区数据的统一性

面试题04、什么是一次性语义?

•at-most-once:最多一次 •at-least-once:至少一次 •exactly-once:有且仅有一次

面试题05、Kafka如何保证消费者消费数据不重复不丢失?

•Kafka消费者通过Offset实现数据消费,只要保证各种场景下能正常实现Offset的记录即可 •保证消费数据不重复需要每次消费处理完成以后,将Offset存储在外部存储中,例如MySQL、Zookeeper、Redis中 •保证以消费分区、处理分区、记录分区的offset的顺序实现消费处理 •如果故障重启,只要从外部系统中读取上一次的Offset继续消费即可

总结

今天我们复习了面试中常考的Kakfa相关的五个问题,你做到心中有数了么?