Kafka从入门到应用
KafKa面试题
一、基础概念
1. 什么是Kafka?它的核心特性有哪些?适用于哪些场景?
最佳答案:Kafka最初由LinkedIn公司采用Scala语言开发,是一个多分区、多副本、基于ZooKeeper协调的分布式消息系统,现已捐献给Apache基金会,定位为分布式流式处理平台。核心特性:高吞吐量、低延迟——每秒可处理几十万条消息,延迟最低只有几毫秒,每个主题可分多个分区,消费组对分区进行消费;可扩展性——集群支持热扩展;持久性、可靠性——消息持久化到本地磁盘并支持数据备份防止丢失;容错性——允许集群中节点失败,若副本数量为n则允许n-1个节点失败;高并发——支持数千个客户端同时读写。应用场景包括:日志收集、消息系统(解耦生产者和消费者、缓存消息)、用户活动跟踪、运营指标监控、流式处理(如Spark Streaming、Storm)。
2. 简述Kafka的核心概念:Topic、Partition、Broker、Producer、Consumer、Leader、Follower。
最佳答案:Producer(生产者)是数据的发布者,将消息发布到Kafka的topic中;Consumer(消费者)从broker中读取数据,可以消费多个topic中的数据;Topic是划分数据所属类别的属性,如果把Kafka看作数据库,topic可以理解为一张表;Partition是topic中数据的分割,每个topic至少有一个分区,分区内数据有序,多个分区之间无法保证顺序;Broker是Kafka集群中的服务器节点,存储topic的数据;Leader是每个分区多个副本中有且仅有一个负责数据读写的副本;Follower跟随Leader,所有写请求通过Leader路由,数据变更广播给所有Follower并与Leader保持同步,Leader失效时从Follower中选举出新的Leader。
3. 什么是AR、ISR、OSR?HW和LEO分别是什么?
最佳答案:AR(Assigned Replicas)是分区中所有副本的统称;ISR(In-Sync Replicas)是所有与Leader副本保持一定程度同步的副本(包括Leader副本在内)组成的集合;OSR(Out-of-Sync-Replicas)是与Leader副本同步滞后过多的副本;ISR与OSR共同组成了AR。HW(High Watermark)是高水位,标识一个特定的offset,消费者只能拉取到这个offset之前的消息;LEO(Log End Offset)是日志末端位移,记录了该副本底层日志中下一条消息的位移值,例如LEO=10表示该副本保存了10条消息,位移值范围是[0, 9]。
4. Kafka与ZooKeeper有什么关系?
最佳答案:Kafka强依赖于ZooKeeper,通过ZooKeeper管理自身集群,包括:Broker列表管理、Partition与Broker的关系、Partition与Consumer的关系、Producer与Consumer负载均衡、消费进度Offset记录、消费者注册等。当Kafka系统中新增broker或某个broker发生故障失效时,由ZooKeeper通知生产者和消费者,生产者和消费者依据ZooKeeper的broker状态信息与broker协调数据的发布和订阅任务。为了达到高可用,ZooKeeper自身也必须是集群。
试读到此结束,完整文档需开通会员,请花两分钟了解下我们
微信扫码添加添加老师微信开通会员:mrt_0607(备注:预见猿份)
探索者会员:59元,全站文档无障碍阅读,没有时间限制。
实践者会员:199元,全站文档+视频+源码资源,没有时间限制。
