kafka阶段学习小结(面试)

本文是对Apache Kafka的面试知识点进行的小结,涵盖了Kafka的基本概念、使用场景、优缺点、消息传递方式、与传统技术的对比、Zookeeper的作用、消息顺序性、消费者组、消息丢失与重复消费等问题,旨在帮助读者深入理解Kafka的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kafka阶段学习小结(面试)

https://blog.youkuaiyun.com/qq_28900249/article/details/90346599
主要是借鉴这篇文章的一些问题,做一个小总结,每回看到这些题都要好好思考一下。

1.请说明什么是Apache Kafka?

2.为什么要使用kafka,为什么要使用消息队列

3.kafka中的ISR,AR又代表什么?ISR的伸缩又指什么?

4.kafka中的broker是干什么的?

5.kafka中的zookeeper起到什么作用,可以不用zookeeper吗?

6.kafka follower如何与leader同步

7.什么情况下一个broker会从isr中踢出去

8.kafka为什么那么快

9.kafka producer如何优化打入数据

10.kafka producer发送消息,ack 为0,1,-1的时候代表啥,设置-1的时候,什么情况下,leader会认为一条消息commit

11.kafka中consumer group是什么概念?

12.kafka中的消息是否会丢失和重复消费?

13.为什么kafka不支持读写分离?

14.kafka中是怎么体现消息顺序性的?

其他一些问题
https://blog.verysu.com/article/417

  1. 请说明什么是Apache kafka?
  2. 说说kafka的使用场景?
  3. 使用kafka有什么优点和缺点?
  4. 使用kafka性能很好,体现在哪里?
  5. 请说明什么是传统的消息传递方式?
  6. 请说明kafka相对传统技术有什么优势?
  7. 解释kafka的zookeeper是什么?我们可以在没有Zookeeper的情况下使用kafka吗?
  8. 解释kafka用户如何消费消息?
  9. 解析如何提高远程用户的吞吐量?
  10. 解释一下,在数据制作过程中,你如何能从kafka得到准确的消息?
  11. 解释如何减少isr中的扰动?broker什么时候离开isr?
  12. kafka为什么需要复制?
  13. 如果副本在isr中停留了很长时间表明什么?
  14. 请说明如果首选的副本不在isr中会发生什么?
  15. 有可能在生产后发生消息偏移吗?
  16. kafka的设计是什么样的呢?
  17. 数据传输的事务定义有哪三种?
  18. kafka判断一个节点是否还活着有连个条件?
  19. producer是否直接将数据发送到broker的leader(主节点)?
  20. kafka consumer是否可以消费指定分区消息?
  21. kafka消息采用pull模式还是push模式

1. kafka里面用的什么方式消费数据,拉的方式还是推的方式?
拉的方式:有消费者控制消费速率
2. 为什么用kafka?kafka是如何存数据的?
kafka将数据按照不同的分类存储在不同的topic中(人为分类),Topic中有分区(partition)以及副本(replication)的概念。在每个分区中(即一个目录中),会存储为一个个segment文件(即.log文件)和index文件
3. kafka元数据存在哪里
Zookeeper:有如下一些节点/controller,/cluster,/consumer,/broker
4. 如何保证数据不会出现丢失或者重复消费的情况?做过哪些预防措施,怎么解决以上问题的?
数据丢失问题:同步发送数据:ACK=-1(all)
重复消费问题:自己维护offset避免重复消费的问题(低级api)
5.如何提高kafka的消费速度
增加分区和消费者
增加拉取数据的大小
增大批处理的大小
6.为什么kafka可以实现高吞吐?单节点kafka的吞吐量比其他消息队列大,为什么?

  • 零拷贝(zero-copy):减少或消除数据拷贝
  • 顺写日志:顺序写磁盘的效率比随机写高
  • 分段日志:日志存储是分段的segment,其中对每一个分段还会有一个索引,利用二分查找,速率高
  • 批处理:读写时客户端会维护一个Batch
  • 压缩:数据可压缩,传输效率高

7 .kafka原理,isr中什么情况下brokerid会消失?
副本down掉,网络阻塞
log(数据落后):低版本有replica.lag.time.max.ms和replica.lag.max.messages属性决定,高版本只有replica.lag.max.messages这个参数
8.kafka消费用的高级API,低级API

高级:KafkaConsumer
poll(获取数据的方法)
低级:核心类SimpleConsumer
send(发送获得元数据的请求)
fetch(发送抓取数据的请求)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值