面试题 01 Kafka中消费者与消费者组的关系是什么?
•消费者组负责订阅Topic
,消费者负责消费Topic分区的数据
•消费者组中可以包含多个消费者,多个消费者共同消费数据,增加消费并行度,提高消费性能
•消费者组的id由开发者指定,消费者的id由Kafka自动分配
面试题02、Kafka中Topic和Partition是什么,如何保证Partition数据安全?
•Topic
:逻辑上实现数据存储的分类,类似于数据库中的表概念
•Partition
:Topic中用于实现分布式存储的物理单元,一个Topic可以有多个分区
–每个分区可以存储在不同的节点,实现分布式存储
•保证数据安全通过副本机制
:Kafka中每个分区可以构建多个副本【副本个数 <= 机器的个数】
–将一个分区的多个副本分为两种角色
–leader副本
:负责对外提供读写请求
–follower副本
:负责与leader同步数据,如果leader故障,follower要重新选举一个成为leader
•选举
:由Kafka Crontroller来决定谁是leader
面试题 03 Kafka中的Segment是什么?
•Segment是对分区内部
的数据进行更细的划分,分区段,文件段
•规则
:按照文件产生的时间或者大小
•目的
:提高写入和查询性能
–文件名称可以用于检索数据:用offset命名的
•组成
:每个Segment由两个文件组成
–.log:存储的数据
–.index:对应.log文件的索引信息
面试题04、Kafka中的Offset是什么?
•Offset是kafka中存储数据时给每个数据做的标记或者编号
•分区级别的编号,每个分区从0开始
编号
•功能
:消费者根据offset来进行消费,保证顺序消费以及消费数据的一次性语义
面试题05、请简述如何使用Kafka Simple Java API 实现数据生产?描述具体的类及方法
•step1:构建生产者连接对象:KafkaProducer
–需要配置对象:管理配置,例如连接地址:Properties
•step2:KafkaProducer:send:生产数据到Kafka中
–需要构建一个生产的数据对象:ProducerRecord
–ProducerRecord(Topic,Value)
–ProducerRecord(Topic,Key,Value)
–ProducerRecord(Topic,Partition,Key,Value)
总结
今天我们复习了面试中常考的Kakfa相关的五个问题,你做到心中有数了么?
其实做这个专栏我也有私心,就是希望借助每天写一篇面试题,督促自己学习,以免在吹水群甚至都没有谈资!
对了,如果你的朋友也在准备面试
,请将这个系列扔给他,
好了,今天就到这里,学废了的同学,记得在评论区留言:打卡
。给同学们以激励。