大数据开发岗常见面试复习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 工作原理 ( 详细图解 )
|
消息中间件 监控 数据可视化
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
605 2
|
消息中间件 架构师 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
1001 0
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
405 0
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
508 0
|
消息中间件 运维 Java
招行面试:RocketMQ、Kafka、RabbitMQ,如何选型?
45岁资深架构师尼恩针对一线互联网企业面试题,特别是招商银行的高阶Java后端面试题,进行了系统化梳理。本文重点讲解如何根据应用场景选择合适的消息中间件(如RabbitMQ、RocketMQ和Kafka),并对比三者的性能、功能、可靠性和运维复杂度,帮助求职者在面试中充分展示技术实力,实现“offer直提”。此外,尼恩还提供了《尼恩Java面试宝典PDF》等资源,助力求职者提升架构、设计、开发水平,应对高并发、分布式系统的挑战。更多内容及技术圣经系列PDF,请关注【技术自由圈】获取。
|
消息中间件 大数据 Kafka
大厂面试高频:Kafka、RocketMQ、RabbitMQ 的优劣势比较
本文深入探讨了消息队列的核心概念、应用场景及Kafka、RocketMQ、RabbitMQ的优劣势比较,大厂面试高频,必知必会,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:Kafka、RocketMQ、RabbitMQ 的优劣势比较
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
413 6
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
335 3