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

简介: 大数据开发岗常见面试复习30天冲刺 - 日积月累,每日五题【Day05】——Kafka3

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

面试题 01、请简述如何使用Kafka Simple Java API 实现数据消费?描述具体的类及方法
面试题02、请简述Kafka生产数据时如何保证生产数据不丢失?
面试题 03 请简述Kafka生产数据时如何保证生产数据不重复?
面试题04、Kafka中生产者的数据分区规则是什么,如何自定义分区规则?
面试题05、Kafka中消费者消费数据的规则是什么?

面试题 01、请简述如何使用Kafka Simple Java API 实现数据消费?描述具体的类及方法

•step1:构建消费者连接对象:KafkaConsumer

–需要配置对象:管理配置,例如连接地址:Properties

•step2:消费者需要订阅Topic

–KafkaConsumer:subscribe(List)

•step3:消费数据

–KafkaConsumer:poll:实现拉取消费数据

–ConsumerRecords:拉取到的所有数据集合

–ConsumerRecord:消费到的每一条数据

•topic:获取数据中的Topic

•partition:获取数据中的分区编号

•offset:获取数据的offset

•key:获取数据中的Key

•value:获取数据中的Value

面试题02、请简述Kafka生产数据时如何保证生产数据不丢失?

•acks机制:当接收方收到数据以后,就会返回一个确认的ack消息

•生产者向Kafka生产数据,根据配置要求Kafka返回ACK

–ack=0:生产者不管Kafka有没有收到,直接发送下一条

•优点:快

•缺点:容易导致数据丢失,概率比较高

–ack=1:生产者将数据发送给Kafka,Kafka等待这个分区leader副本写入成功,返回ack确认,生产者发送下一条

•优点:性能和安全上做了平衡

•缺点:依旧存在数据丢失的概率,但是概率比较小

–ack=all/-1:生产者将数据发送给Kafka,Kafka等待这个分区所有副本全部写入,返回ack确认,生产者发送下一条

•优点:数据安全

•缺点:慢

•如果使用ack=all,可以搭配min.insync.replicas参数一起使用,可以提高效率

–min.insync.replicas:表示最少同步几个副本以后,就返回ack

•如果生产者没有收到ack,就使用重试机制,重新发送上一条消息,直到收到ack

面试题 03 请简述Kafka生产数据时如何保证生产数据不重复?

•数据重复的场景:Kafka写入数据,返回ack,但是ack丢失,生产者没有收到ack,重新写入数据,导致Kafka数据重复

•Kafka中使用幂等性机制来保证生产数据不重复

–step1:发送数据时,给每条数据增加一个数据id的编号,每次下一条数据的编号自增1

–step2:Kafka将数据写入,并记住写入的数据id

–step3:如果下一条数据的id与上一次的数据id一致,就不写入,直接返回ack

面试题04、Kafka中生产者的数据分区规则是什么,如何自定义分区规则?

•如果指定了分区:就写入指定的分区

•如果没有指定分区,就判断是否指定了Key

–如果指定了Key:根据Key的Hash取余分区

–如果没有指定Key:根据黏性分区来实现

•自定义分区

–开发一个类实现Partitioner接口

–实现partition方法

–在生产者中指定分区器的配置

面试题05、Kafka中消费者消费数据的规则是什么?

•消费者根据Offset对Topic中的分区进行消费

•第一次消费:根据auto.offset.reset属性进行消费

–latest:从最新的位置开始消费

–earliest:从头开始消费

•第二次消费:根据上一次的offset+1继续消费

总结

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

其实做这个专栏我也有私心,就是希望借助每天写一篇面试题,督促自己学习,以免在吹水群甚至都没有谈资!

对了,如果你的朋友也在准备面试,请将这个系列扔给他,

好了,今天就到这里,学废了的同学,记得在评论区留言:打卡。给同学们以激励。


目录
相关文章
|
消息中间件 存储 缓存
大厂面试高频:Kafka 工作原理 ( 详细图解 )
本文详细解析了 Kafka 的核心架构和实现原理,消息中间件是亿级互联网架构的基石,大厂面试高频,非常重要,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:Kafka 工作原理 ( 详细图解 )
|
消息中间件 架构师 Java
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
美团面试:对比分析 RocketMQ、Kafka、RabbitMQ 三大MQ常见问题?
|
消息中间件 关系型数据库 MySQL
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
1049 0
|
消息中间件 大数据 Kafka
大厂面试高频:Kafka、RocketMQ、RabbitMQ 的优劣势比较
本文深入探讨了消息队列的核心概念、应用场景及Kafka、RocketMQ、RabbitMQ的优劣势比较,大厂面试高频,必知必会,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:Kafka、RocketMQ、RabbitMQ 的优劣势比较
|
消息中间件 运维 Java
招行面试:RocketMQ、Kafka、RabbitMQ,如何选型?
45岁资深架构师尼恩针对一线互联网企业面试题,特别是招商银行的高阶Java后端面试题,进行了系统化梳理。本文重点讲解如何根据应用场景选择合适的消息中间件(如RabbitMQ、RocketMQ和Kafka),并对比三者的性能、功能、可靠性和运维复杂度,帮助求职者在面试中充分展示技术实力,实现“offer直提”。此外,尼恩还提供了《尼恩Java面试宝典PDF》等资源,助力求职者提升架构、设计、开发水平,应对高并发、分布式系统的挑战。更多内容及技术圣经系列PDF,请关注【技术自由圈】获取。
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
365 3
|
消息中间件 存储 缓存
美团面试: Kafka为啥能实现 10Wtps 到100Wtps ?kafka 如何实现零复制 Zero-copy?
40岁老架构师尼恩分享了Kafka如何实现高性能的秘诀,包括零拷贝技术和顺序写。Kafka采用mmap和sendfile两种零拷贝技术,前者用于读写索引文件,后者用于向消费者发送消息,减少数据在用户空间和内核空间间的拷贝次数,提高数据传输效率。此外,Kafka通过顺序写日志文件,避免了磁盘寻道和旋转延迟,进一步提升了写入性能。尼恩还提供了系列技术文章和PDF资料,帮助读者深入理解这些技术,提升面试竞争力。
美团面试: Kafka为啥能实现 10Wtps 到100Wtps ?kafka 如何实现零复制 Zero-copy?
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
365 2
|
消息中间件 分布式计算 druid
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
392 1
|
消息中间件 存储 前端开发
资深Android开发的5个经典面试题
本文首发于公众号“AntDream”,欢迎关注。文章详细解答了五个常见的Android面试题,涵盖内存泄漏与溢出、Binder机制、MVC/MVP/MVVM架构、Handler机制及Context对象等内容,帮助读者深入了解Android开发的核心概念。
512 0