大数据之 Kafka 面试题 完整使用

一、面试问题

1.Kafka 中的 ISR(InSyncRepli)、OSR(OutSyncRepli)、AR(AllRepli)代表什么?

ISR + OSR = AR

2.Kafka 中的 HW、LEO 等分别代表什么?

HW 消费者可见的最大的offset
LEO 是每一个分区的多个副本都有一个自己的最大的offset

3.Kafka 中是怎么体现消息顺序性的?

区内有序

4.Kafka 中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?

执行顺序 拦截器 -》序列化器-》分区器

5.Kafka 生产者客户端的整体结构是什么样子的?使用了几个线程来处理?分别是什么?

两个线程

6.“消费组中的消费者个数如果超过 topic 的分区,那么就会有消费者消费不到数据”这句话是否正确?

正确

7.消费者提交消费位移时提交的是当前消费到的最新消息的 offset 还是 offset+1?

offset+1

8.有哪些情形会造成重复消费?

先处理数据、在提交offset、因为处理完了,没有提交下一次来的时候邮来了一遍

9.那些情景会造成消息漏消费?

先提交、后处理会丢数据

10.当你使用 kafka-topics.sh 创建(删除)了一个 topic 之后,Kafka 背后会执行什么逻辑?

1)会在 zookeeper 中的/brokers/topics 节点下创建一个新的 topic 节点,如:/brokers/topics/first

2)触发 Controller 的监听程序

3)kafka Controller 负责 topic 的创建工作,并更新 metadata cache

11.topic 的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?

可增、
获取当前可用分区、可以投入到新的生产环境使用

12.topic 的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?

不可减
以前存在的数据没办法处理

13.Kafka 有内部的 topic 吗?如果有是什么?有什么所用?


– 给普通的一个消费者来存offset用的

14.Kafka 分区分配的概念?

两种 Range(所有场景都可以使用,针对主题的)按主题分配
RoundRobin 面向组处理的、把当前组分一块做一个轮询分配、有好处多个消费之间、差异最大到1、前提条件比较死

15.简述 Kafka 的日志目录结构?

index 和 log
扫描 index文件在log里具体的偏移量

16.如果我指定了一个 offset,Kafka Controller 怎么查找到对应的消息?

通过二分查找法定位到实际的数据、在那个index数据文件里面、然后通过index扫瞄、找到具体的log文件里面的偏移量

17.聊一聊 Kafka Controller 的作用?

相当于kafka当中直接选择了一个老大、这个老大是干活的

18.Kafka 中有那些地方需要选举?这些地方的选举策略又有哪些?

controller
leader

19.失效副本是指什么?有那些应对措施?

20.Kafka 的哪些设计让它有如此高的性能?

顺序写磁盘、零copy

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐