Java资源分享网 - 专业的Java学习网站 学Java,上Java资源分享网
Apache Kafka面试题 PDF 下载
匿名网友发布于:2024-02-29 09:42:54
(侵权举报)
(假如点击没反应,多刷新两次就OK!)

Apache Kafka面试题 PDF 下载 图1

 

 

 

资料内容:

 

 

1. 讲⼀下kafka 的架构

 

 

Producer:消息⽣产者
Producer可以发送消息到Topic
Topic的消息存放在不同Partition中,不同Partition存放在不同Broker
Producer只需要指定Topic的名字、要连接到的Broker,这样Kafka就可以⾃动地把消息数据路由
到合适的Broker(不⼀定是指定连接的Broker
Producer发送消息后,可以选择是否要确认消息写⼊成功(ACKAcknowledgment
ACK=0Producer不会等待ACK(消息可能丢失)
ACK=1Producer会等待Leader PartitionACKFollower Partition消息可能丢失)
ACK=allProducer会等待Leader PartitionFollower PartitionACK(消息不会丢失)
消息keyProducer可以给消息加上key,带相同key的消息会被分发到同⼀个Partition,这样就可以保
证带相同key的消息的消费是有序的
Broker:每个Broker⾥包含了不同Topic的不同PartitionPartition中包含了有序的消息
⼀个Kafka集群由多个Brokerserver)组成
每个Broker都有ID标识
每个Broker⾥保存⼀定数量的Partition
客户端只要连接上任意⼀个Broker,就可以连接上整个Kafka集群
⼤多数Kafka集群刚开始的时候建议使⽤⾄少3Broker,集群⼤了可以有上百个Broker
Consumer:消息消费者
Consumer可以从Topic读取消息进⾏消费
Topic的消息存放在不同Partition中,不同Partition存放在不同Broker
Consumer只需要指定Topic的名字、要连接到的Broker,这样Kafka就可以⾃动地把Consumer
由到合适的Broker拉取消息进⾏消费(不⼀定是指定连接的Broker
每⼀个Partition中的消息都会被有序消费
Consumer Group
Consumer Group由多个Consumer组成Consumer Group⾥的每个Consumer都会从不同的Partition中读取消息
如果Consumer的数量⼤于Partition的数量,那么多出来的Consumer就会空闲下来(浪费资源)
Consumer offset
Kafka会为Consumer Group要消费的每个Partion保存⼀个offset,这个offset标记了该
Consumer Group最后消费消息的位置
这个offset保存在Kafka⾥⼀个名为“__consumer_offsets”Topic中;当ConsumerKafka拉取消
息消费时,同时也要对这个offset提交修改更新操作。这样若⼀个Consumer消费消息时挂了,其
Consumer可以通过这个offset值重新找到上⼀个消息再进⾏处理