最新Kafka面试题【附答案解析】Kafka面试题及答案,Kafka最新面试题及答案,Kafka面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的。这些答案难免会存在一些错误,仅供大家参考。如果发现错误还望大家多多包涵,不吝赐教,谢谢~

如果不背 Kafka面试题的答案,肯定面试会挂!

这套Kafka面试题大全,希望对大家有帮助哈~

博主已将以下这些面试题整理成了一个面试手册,是PDF版的

1、在生产者中,何时发生QueueFullException?

每当Kafka生产者试图以代理的身份在当时无法处理的速度发送消息时,通常都会发生QueueFullException。但是,为了协作处理增加的负载,用户需要添加足够的代理,因为生产者不会阻止。

2、如何估算Kafka集群的机器数量?

1、 该题也算是SRE的送分题吧,对于SRE来讲,任何生产的系统第一步需要做的就是容量预估以及集群的架构规划,实际上也就是机器数量和所用资源之间的关联关系,资源通常来讲就是CPU,内存,磁盘容量,带宽。但需要注意的是,Kafka因为独有的设计,对于磁盘的要求并不是特别高,普通机械硬盘足够,而通常的瓶颈会出现在带宽上。

2、 在预估磁盘的占用时,你一定不要忘记计算副本同步的开销。如果一条消息占用1KB的磁盘空间,那么,在有3个副本的主题中,你就需要3KB的总空间来保存这条消息。同时,需要考虑到整个业务Topic数据保存的最大时间,以上几个因素,基本可以预估出来磁盘的容量需求。

3、 需要注意的是:对于磁盘来讲,一定要提前和业务沟通好场景,而不是等待真正有磁盘容量瓶颈了才去扩容磁盘或者找业务方沟通方案。

4、 对于带宽来说,常见的带宽有1Gbps和10Gbps,通常我们需要知道,当带宽占用接近总带宽的90%时,丢包情形就会发生。

3、分区Leader选举策略有几种?

分区的Leader副本选举对用户是完全透明的,它是由Controller独立完成的。你需要回答的是,在哪些场景下,需要执行分区Leader选举。每一种场景对应于一种选举策略。

1、 OfflinePartition Leader选举:每当有分区上线时,就需要执行Leader选举。所谓的分区上线,可能是创建了新分区,也可能是之前的下线分区重新上线。这是最常见的分区Leader选举场景。

2、 ReassignPartition Leader选举:当你手动运行Kafka-reassign-partitions命令,或者是调用Admin的alterPartitionReassignments方法执行分区副本重分配时,可能触发此类选举。假设原来的AR是[1,2,3],Leader是1,当执行副本重分配后,副本集合AR被设置成[4,5,6],显然,Leader必须要变更,此时会发生Reassign Partition Leader选举。

3、 PreferredReplicaPartition Leader选举:当你手动运行Kafka-preferred-replica-election命令,或自动触发了Preferred Leader选举时,该类策略被激活。所谓的Preferred Leader,指的是AR中的第一个副本。比如AR是[3,2,1],那么,Preferred Leader就是3。

4、 ControlledShutdownPartition Leader选举:当Broker正常关闭时,该Broker上的所有Leader副本都会下线,因此,需要为受影响的分区执行相应的Leader选举。

这4类选举策略的大致思想是类似的,即从AR中挑选首个在ISR中的副本,作为新Leader。

4、Kafka中有哪几个组件?

Kafka最重要的元素是:

主题:Kafka主题是一堆或一组消息。生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。消费者:Kafka消费者订阅了一个主题,并且还从主题中读取和处理消息。经纪人:在管理主题中的消息存储时,我们使用Kafka Brokers。

5、:24, 22

6、系统工具有哪些类型?

系统工具有三种类型:1.Kafka迁移工具:它有助于将代理从一个版本迁移到另一个版本。2.Mirror Maker:Mirror Maker工具有助于将一个Kafka集群的镜像提供给另一个。3.消费者检查:对于指定的主题集和消费者组,它显示主题,分区,所有者。

7、比较传统队列系统与Apache Kafka

让我们比较一下传统队列系统与Apache Kafka的功能:消息保留 传统的队列系统 - 它通常从队列末尾处理完成后删除消息。 Apache Kafka中,消息即使在处理后仍然存在。这意味着Kafka中的消息不会因消费者收到消息而被删除。基于逻辑的处理传统队列系统不允许基于类似消息或事件处理逻辑。Apache Kafka允许基于类似消息或事件处理逻辑。

8、连接器API的作用是什么?

一个允许运行和构建可重用的生产者或消费者的API,将Kafka主题连接到现有的应用程序或数据系统,我们称之为连接器API。Apache Kafka对于新手的面试

9、消息队列的作用

解耦

快递小哥手上有很多快递需要送,他每次都需要先电话一一确认收货人是否有空、哪个时间段有空,然后再确定好送货的方案。这样完全依赖收货人了!如果快递一多,快递小哥估计的忙疯了……

如果有了便利店,快递小哥只需要将同一个小区的快递放在同一个便利店,然后通知收货人来取货就可以了,这时候快递小哥和收货人就实现了解耦!

异步

快递小哥打电话给我后需要一直在你楼下等着,直到我拿走你的快递他才能去送其他人的。快递小哥将快递放在小芳便利店后,又可以干其他的活儿去了,不需要等待你到来而一直处于等待状态。提高了工作的效率。

削峰

假设双十一我买了不同店里的各种商品,而恰巧这些店发货的快递都不一样,有中通、圆通、申通、各种通等……

更巧的是他们都同时到货了!中通的小哥打来电话叫我去北门取快递、圆通小哥叫我去南门、申通小哥叫我去东门。我一时手忙脚乱……

我们能看到在系统需要交互的场景中,使用消息队列中间件真的是好处多多,基于这种思路,就有了丰巢、菜鸟驿站等比小芳便利店更专业的“中间件”了。

10、数据传输的事物定义有哪三种?

数据传输的事务定义通常有以下三种级别:

1、 最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输

2、 最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输、(3)精确的一次(Exactly once): 不会漏传输也不会重复传输,每个消息都传输被一次而

3、 且仅仅被传输一次,这是大家所期望的

11、Kafka Producer如何优化写入速度?

  1. 增加线程
  2. 提高 batch.size
  3. 增加更多 producer 实例
  4. 增加 partition 数
  5. 设置 acks=-1 时,如果延迟增大:可以增大 num.replica.fetchers(follower 同步数据的线程数)来调解;
  6. 跨数据中心的传输:增加 socket 缓冲区设置以及 OS tcp 缓冲区设置。

12、生产者中,什么情况下会发生 QueueFullException?

每当Kafka生产者试图以代理的身份在当时无法处理的速度发送消息时,通常都会发生QueueFullException。但是,为了协作处理增加的负载,用户需要添加足够的代理,因为生产者不会阻止。

13、数据传输的事务定义有哪三种?

和MQTT的事务定义一样都是3种

1、 最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输

2、 最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输.

3、 精确的一次(Exactly once): 不会漏传输也不会重复传输,每个消息都传输被一次而且仅仅被传输一次,这是大家所期望的

14、Kafka Unclean 配置代表什么?会对 spark streaming 消费有什么影响?

unclean.leader.election.enable 为 true 的话,意味着非 ISR 集合的 broker 也可以参与选举,这样有可能就会丢数据,spark streaming在消费过程中拿到的 end offset 会突然变小,导致 spark streaming job 挂掉。如果 unclean.leader.election.enable 参数设置为 true,就有可能发生数据丢失和数据不一致的情况,Kafka 的可靠性就会降低;而如果 unclean.leader.election.enable 参数设置为 false,Kafka 的可用性就会降低。

15、Kafka 中 Consumer Group 是什么概念?

同样是逻辑上的概念,是Kafka实现单播和广播两种消息模型的手段。同一个topic的数据,会广播给不同的group;同一个group中的worker,只有一个worker能拿到这个数据。换句话说,对于同一个topic,每个group都可以拿到同样的所有数据,但是数据进入group后只能被其中的一个worker消费。group内的worker可以使用多线程或多进程来实现,也可以将进程分散在多台机器上,worker的数量通常不超过partition的数量,且二者最好保持整数倍关系,因为Kafka在设计时假定了一个partition只能被一个worker消费(同一group内)。

16、什么是生产者?

生产者的主要作用是将数据到他们选择的主题上。基本上,它的职责是选择要分配给主题内分区的记录。

17、Kafka 与传统消息系统之间有三个关键区别

1、 Kafka 持久化日志,这些日志可以被重复读取和无限期保留

2、 Kafka 是一个分布式系统:它以集群的方式运行,可以灵活伸缩,在内部通过复制数据

3、 提升容错能力和高可用性

4、 Kafka 支持实时的流式处理

18、Kafka 中是怎么体现消息顺序性的?

Kafka 每个 partition 中的消息在写入时都是有序的,消费时,每个 partition 只能被每一个 group 中的一个消费者消费,保证了消费时也是有序的。整个 topic 不保证有序。如果为了保证 topic 整个有序,那么将 partition 调整为1.

19、Apache Kafka的缺陷

Kafka的局限性是:1.没有完整的监控工具集2.消息调整的

20、解释Apache Kafka用例?

Apache Kafka有很多用例,例如:

Kafka指标可以使用Kafka进行操作监测数据。此外,为了生成操作数据的集中提要,它涉及到从分布式应用程序聚合统计信息。Kafka日志聚合 从组织中的多个服务收集日志。流处理在流处理过程中,Kafka的强耐久性非常有用。Apache Kafka对于新手的面试

21、在生产者中,何时发生QueueFullException?

每当Kafka生产者试图以代理的身份在当时无法处理的速度发送消息时,通常都会发生QueueFullException。但是,为了协作处理增加的负载,用户需要添加足够的代理,因为生产者不会阻止。

22、如何估算Kafka集群的机器数量?

1、 该题也算是SRE的送分题吧,对于SRE来讲,任何生产的系统第一步需要做的就是容量预估以及集群的架构规划,实际上也就是机器数量和所用资源之间的关联关系,资源通常来讲就是CPU,内存,磁盘容量,带宽。但需要注意的是,Kafka因为独有的设计,对于磁盘的要求并不是特别高,普通机械硬盘足够,而通常的瓶颈会出现在带宽上。

2、 在预估磁盘的占用时,你一定不要忘记计算副本同步的开销。如果一条消息占用1KB的磁盘空间,那么,在有3个副本的主题中,你就需要3KB的总空间来保存这条消息。同时,需要考虑到整个业务Topic数据保存的最大时间,以上几个因素,基本可以预估出来磁盘的容量需求。

3、 需要注意的是:对于磁盘来讲,一定要提前和业务沟通好场景,而不是等待真正有磁盘容量瓶颈了才去扩容磁盘或者找业务方沟通方案。

4、 对于带宽来说,常见的带宽有1Gbps和10Gbps,通常我们需要知道,当带宽占用接近总带宽的90%时,丢包情形就会发生。

23、分区Leader选举策略有几种?

分区的Leader副本选举对用户是完全透明的,它是由Controller独立完成的。你需要回答的是,在哪些场景下,需要执行分区Leader选举。每一种场景对应于一种选举策略。

1、 OfflinePartition Leader选举:每当有分区上线时,就需要执行Leader选举。所谓的分区上线,可能是创建了新分区,也可能是之前的下线分区重新上线。这是最常见的分区Leader选举场景。

2、 ReassignPartition Leader选举:当你手动运行Kafka-reassign-partitions命令,或者是调用Admin的alterPartitionReassignments方法执行分区副本重分配时,可能触发此类选举。假设原来的AR是[1,2,3],Leader是1,当执行副本重分配后,副本集合AR被设置成[4,5,6],显然,Leader必须要变更,此时会发生Reassign Partition Leader选举。

3、 PreferredReplicaPartition Leader选举:当你手动运行Kafka-preferred-replica-election命令,或自动触发了Preferred Leader选举时,该类策略被激活。所谓的Preferred Leader,指的是AR中的第一个副本。比如AR是[3,2,1],那么,Preferred Leader就是3。

4、 ControlledShutdownPartition Leader选举:当Broker正常关闭时,该Broker上的所有Leader副本都会下线,因此,需要为受影响的分区执行相应的Leader选举。

这4类选举策略的大致思想是类似的,即从AR中挑选首个在ISR中的副本,作为新Leader。

24、Kafka中有哪几个组件?

Kafka最重要的元素是:

主题:Kafka主题是一堆或一组消息。生产者:在Kafka,生产者发布通信以及向Kafka主题发布消息。消费者:Kafka消费者订阅了一个主题,并且还从主题中读取和处理消息。经纪人:在管理主题中的消息存储时,我们使用Kafka Brokers。

25、:24, 22

26、系统工具有哪些类型?

系统工具有三种类型:1.Kafka迁移工具:它有助于将代理从一个版本迁移到另一个版本。2.Mirror Maker:Mirror Maker工具有助于将一个Kafka集群的镜像提供给另一个。3.消费者检查:对于指定的主题集和消费者组,它显示主题,分区,所有者。

27、比较传统队列系统与Apache Kafka

让我们比较一下传统队列系统与Apache Kafka的功能:消息保留 传统的队列系统 - 它通常从队列末尾处理完成后删除消息。 Apache Kafka中,消息即使在处理后仍然存在。这意味着Kafka中的消息不会因消费者收到消息而被删除。基于逻辑的处理传统队列系统不允许基于类似消息或事件处理逻辑。Apache Kafka允许基于类似消息或事件处理逻辑。

28、连接器API的作用是什么?

一个允许运行和构建可重用的生产者或消费者的API,将Kafka主题连接到现有的应用程序或数据系统,我们称之为连接器API。Apache Kafka对于新手的面试

29、消息队列的作用

解耦

快递小哥手上有很多快递需要送,他每次都需要先电话一一确认收货人是否有空、哪个时间段有空,然后再确定好送货的方案。这样完全依赖收货人了!如果快递一多,快递小哥估计的忙疯了……

如果有了便利店,快递小哥只需要将同一个小区的快递放在同一个便利店,然后通知收货人来取货就可以了,这时候快递小哥和收货人就实现了解耦!

异步

快递小哥打电话给我后需要一直在你楼下等着,直到我拿走你的快递他才能去送其他人的。快递小哥将快递放在小芳便利店后,又可以干其他的活儿去了,不需要等待你到来而一直处于等待状态。提高了工作的效率。

削峰

假设双十一我买了不同店里的各种商品,而恰巧这些店发货的快递都不一样,有中通、圆通、申通、各种通等……

更巧的是他们都同时到货了!中通的小哥打来电话叫我去北门取快递、圆通小哥叫我去南门、申通小哥叫我去东门。我一时手忙脚乱……

我们能看到在系统需要交互的场景中,使用消息队列中间件真的是好处多多,基于这种思路,就有了丰巢、菜鸟驿站等比小芳便利店更专业的“中间件”了。

30、数据传输的事物定义有哪三种?

数据传输的事务定义通常有以下三种级别:

1、 最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输

2、 最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输、(3)精确的一次(Exactly once): 不会漏传输也不会重复传输,每个消息都传输被一次而

3、 且仅仅被传输一次,这是大家所期望的

如果不背 Kafka面试题的答案,肯定面试会挂!

更多Kafka面试题 60道

01、Kafka为什么那么快?

02、Kafka 消息是采用 Pull 模式,还是 Push 模式?

03、Kafka Producer 写数据,ACK 为 0,1,-1 时分别代表什么?

04、ISR在Kafka环境中代表什么?

05、Kafka的一些最显著的应用。

06、kafaka 生产数据时数据的分组策略

07、Leader总是-1,怎么破?

08、Java在Apache Kafka中的重要性是什么?

09、什么是消费者组?

10、为什么需要消息系统,MySQL不能满足需求吗?

11、如何调优Kafka?

12、解释术语“Log Anatomy”

13、如果 Leader Crash 时,ISR为空怎么办

14、Kafka为什么不支持读写分离?

15、Kafka 存储在硬盘上的消息格式是什么?

16、:12,15,20

17、Kafka的哪些场景中使用了零拷贝(Zero Copy)?

18、为什么要使用 Kafka?为什么要使用消息队列?

19、Kafka中的 ISR、AR 又代表什么?ISR 的伸缩又指什么?

20、如何控制消费的位置

21、Kafka存在那些局限性?

22、Kafka Follower如何与Leader同步数据?

23、系统工具有哪些类型?

24、生产者中,什么情况下会发生 QueueFullException?

25、什么是消费者或用户?

26、能简单说一下rebalance过程吗?

27、producer 是否直接将数据发送到 broker 的 leader(主节点)?

28、流API的作用是什么?

29、Kafka 创建 Topic 时如何将分区放置到不同的 Broker 中

30、什么是Kafka中的地域复制?

31、什么是复制工具及其类型?

32、为什么Kafka的复制至关重要?

33、Rebalance有什么影响

34、消费者如何不自动提交偏移量,由应用提交?

35、Apache Kafka是什么?

36、如何估算Kafka集群的机器数量?

37、Kafka 中 Consumer Group 是什么概念?

38、解释偏移的作用。

39、为什么Kafka不支持读写分离?

40、解释下Kafka中位移(offset)的作用

41、Kafka和Flume之间的主要区别是什么?

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

43、消费者API的作用是什么?

44、生产者和消费者的命令行是什么?

45、如何获取topic主题的列表

46、消费者负载均衡策略

47、Kafka 的设计时什么样的呢?

48、解释多租户是什么?

49、Kafka 与传统消息系统之间有三个关键区别

50、启动Kafka服务器的过程是什么?

51、Apache Kafka的缺陷

52、解释生产者是什么?

53、Kafka什么情况下会rebalance

54、Kafka中有哪几个组件?

55、解释Kafka可以接收的消息最大为多少?

56、Apache Kafka是分布式流处理平台吗?如果是,你能用它做什么?

57、Kafka分布式(不是单机)的情况下,如何保证消息的顺序消费?

58、解释Apache Kafka用例?

59、传统的消息传递方法有哪些类型?

60、在生产者中,何时发生QueueFullException?

这套Kafka面试题大全,希望对大家有帮助哈~

博主已将以下这些面试题整理成了一个面试手册,是PDF版的

Kafka面试题及答案整理 110道 (持续更新)相关推荐

  1. 常见JVM面试题及答案整理(2022持续更新)

    Java面试题及答案(2022版),适用于应届生.有工作经验的程序员,每道都是认真筛选出的高频面试题,助力大家能找到满意的工作! JVM篇 下载链接:全部面试题及答案PDF 1.JVM 的主要组成部分 ...

  2. Jvm面试题及答案整理 271道,Jvm面试题大全带答案(2021最新版)

    Jvm面试题及答案整理 271道,Jvm面试题大全带答案(2021最新版) Jvm面试题及答案[最新版]Jvm高级面试题大全(2021版),发现网上很多Jvm面试题及答案整理都没有答案,所以花了很长时 ...

  3. 2020年拼多多校招面试题及答案-最全最新-持续更新中

    大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员 2020年拼多多校招面试题及答案-最全最新-持续更新中 2020年拼多多校招面试题一面-牛客网 2020年拼多多校招面试题二面- ...

  4. 2020年拼多多校招面试题及答案-最全最新-持续更新中(2)

    大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员~ 2020年拼多多校招面试题及答案-最全最新-持续更新中(2) 2020年拼多多校招面试题一面 2020年拼多多校招面试题一面- ...

  5. Java面试题及答案整理 140道( 2021年持续更新)

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本人发现网上虽然有不少Java相关的面试题,但第一未必全,第二未必有答案,第三虽然有答 ...

  6. 金三银四:蚂蚁金服面试题及答案之一面(持续更新)

    一面 1.自我介绍.自己做的项目和技术领域 开放题 2.项目中的监控:那个监控指标常见的有哪些? 答:CPU.内存.IO 等等.建议下载个nmon工具,里面有各个指标. 数据库:Mysql(缓存命中. ...

  7. JVM面试题及答案整理(最新版)

    Jvm面试题及答案整理965道(2021最新版) 这是我收集的<Jvm 最常见的 965道面试题>高级Java面试问题列表.这些问题主要来自 JVM核心部分 ,你可能知道这些棘手的JVM ...

  8. Kafka面试题与答案全套整理

    转载自 Kafka面试题与答案全套整理 1. Kafka的用途有哪些?使用场景如何? 总结下来就几个字:异步处理.日常系统解耦.削峰.提速.广播 如果再说具体一点例如:消息,网站活动追踪,监测指标,日 ...

  9. Java 最常见的 10000+ 面试题及答案整理:持续更新

    Java面试题以及答案整理[最新版]Java高级面试题大全(2021版),发现网上很多Java面试题都没有答案,所以花了很长时间搜集,本套Java面试题大全,汇总了大量经典的Java程序员面试题以及答 ...

最新文章

  1. CNN网络优化加速开源代码汇总
  2. 第十五届全国大学生智能车竞赛线上竞赛方案(草案)
  3. 高维、相依和不完全数据的统计分析(二)
  4. kali linux 里vim如何使用_Kali Linux的vi编辑器/vim编辑器使用方法
  5. 1.8 小飞的电梯调度算法
  6. matlab符号运算结果的分数怎么转化为小数
  7. 2021牛客多校4 - Tree Xor(线段树+异或区间拆分)
  8. 求职产品经理【十六】笔试真题串讲之百度地图与大数据结合的产品
  9. 【BZOJ2243】 [SDOI2011]染色
  10. mysql snowflake_雪花算法-snowflake
  11. 如何在 LeetCode 高效刷题,才能拿到一线大厂 Offer
  12. 紫色全屏渐变css3动画UI企业模板
  13. Atitit 提升扩展性bpmn艾提拉总结 工作流 目录 1.1. 尽管BPMN 1.1全面地处理了过程建模符号,但它实质上缺少解决交换格式(用于图交换)的问题 1 1.2. BPMN 2.0中使
  14. “听我说谢谢你”还能用古诗来说?清华搞了个“据意查句”神器,一键搜索你想要的名言警句...
  15. Java面试题大全带答案 40道
  16. SpringCloud-07-新一代路由网关Spring Cloud Gateway
  17. 矩阵分解(java)
  18. evict和clear
  19. 将一个整数分解为质数的乘积的实现方式
  20. java网上下载文件

热门文章

  1. log4j个人使用整理
  2. hdu 1286( 欧拉函数 )
  3. 实战:使用TCP/IP筛选保护服务器安全
  4. Python天天美味(35) - 细品lambda
  5. 行走在区块链上的智能合约
  6. 小程序 reduce_使用Reduce制作的10个JavaScript实用程序功能
  7. 辞职前为什么挣扎_当您感到自己像开发人员一样挣扎时,为什么学得最多
  8. 二次开发photoshop_Photoshop 101:Web开发人员简介
  9. 如何征服Webpack 4并构建一个出色的React应用
  10. mysql 表的继承,MySQL是否支持表继承?