大数据面试——Kafka篇

大数据面试——Kafka篇

发现问题的小伙伴可以随时评论或私信我进行修改,愿意扩大题库的小伙伴也可以随时私信我嗷。愿大家都能找到期望的工作。

1.消息队列

1.1 消息队列的好处

  • 解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束
  • 可恢复性:系统的一部分组件失效时,不会影响到整个系统
  • 缓冲:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况
  • 异步通信:很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它
  • 灵活性 & 峰值处理能力

1.2 消息队列的两种模式

  • 点对点(一对一)
  • 发布/订阅(一对多)

1.3 生产者消费者模式与发布订阅模式有何异同?

相同:都是一端生产数据,一端消费数据

不同:生产者-消费者,同一类别下,消费者拿到的都是一样的数据;发布-订阅,订阅者只拿自己感兴趣的数据。

1.4 Kafka作为消息队列,能够解决什么问题

(1)增加数据可靠性和持久性:采用了分布式复制机制,将消息副本分布到不同的Broker节点上,并确保故障发生时的数据可恢复性。

(2)高吞吐量和低延迟:处理大量的消息并能够提供毫秒级的延迟,适用于实时数据流处理和高负载场景。

(3)分布式流处理:Kafka不仅仅是一个消息队列,还是一个流处理平台。它支持对数据流进行实时处理、转换和聚合,可以构建复杂的流处理应用程序。

(4)水平扩展和负载均衡:通过增加Broker节点来处理更多的消息和请求。

(5)数据持久化和回溯能力:将消息持久化存储在磁盘上,保证数据的可靠性和持久性。

1.5 Kafka相比于其它消息组件有什么好处

高性能:单一的Kafka代理可以处理成千上万的客户端,每秒处理数兆字节的读写操作,Kafka性能远超过传统的消息队列

可扩展性:提供透明扩展,增加新的服务器进集群

容错性:每个分区有多个副本保障数据安全性

持久性:提供数据的磁盘存储

2.Kafka是什么

Kafka是一种分布式流处理平台,可以处理大规模动作流数据,主要应用于大数据实时处理,具有高吞吐量、低延迟和持久化的特点。

3.介绍下Kafka的作用以及使用场景

主要作用有:

(1)消息传递系统;因为它具有高吞吐量和低延迟的特点,能够在分布式系统中可靠地传输大量数据消息。

(2)流处理平台:Kafka支持实时数据流处理,在数据流中进行转换、聚合和分析,并将结果输出到其他系统中。

(3) 存储系统;Kafka可持久化存储,可以将数据持久保存在磁盘上,以便进行后续的处理和分析。

基于以上作用,可以应用于日志的收集聚合、实时检测分析系统、消息队列、事件驱动架构等场景。

4.Kafka的组件有哪些

Producer:生产者,就是向kafka broker发消息的客户端。

Consumer:消费者,向kafka broker取消息的客户端。

Consumer Group:消费者组,由1个或n个consumer组成,消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。

Broker:一台kafka服务器就是一个broker。

Topic:消费主题,可以理解为一个队列,生产者和消费者面向的都是一个topic。

Partition:为了实现扩展性,一个topic可以分为多个partition,分布到多个broker(即服务器)上。

Replication:为了实现Partition的可靠性,一个Partition会保留多个Replication,分为一个leader和若干个follower;其中leader是Producer发送数据的对象,以及Consumer消费数据的对象。

Zookeeper:用于leader选举和follower信息同步、Broker的管理、Topic维护、生产者负载均衡、消费者负载均衡,在0.9版本之前还存储Customer的消费的offset。

5.讲下Kafka的整体结构

Kafka由生产者、Broker集群和消费者组成。

其中消息以Topic分类,每个Topic可以看做是一个队列,为提高其扩展性、安全性以及并发能力,每个Topic由多个Partition组成。

每个Partition有多个副本,分为leader和follower,leader负责读写,follower与leader数据保持同步,以做容错作用。同时为了防止文件过大,partition分为了多个segment,每个segment由一个.index文件和.log文件组成,存储在同一个文件夹:topic名字-分区号。

消费者则是以组为单位消费数据,消费者组内的消费者消费不同的Partition,每个Partition只能组内一个消费者消费,消费者组之间互不影响,消费者会记录每一次消费的offset。

同时还有zookeeper提供broker管理,topic管理,leader选举等服务。

6.Kafka的优缺点

6.1 优点

(1)吞吐量高,单机TPS约在百万条/秒

(2)时效性高,毫秒级

(3)可用性高,每个数据有多个副本

(4)消费者采用pull方式,通过控制能保证所有消息精准一次消费

(5)在日志领域比较成熟

6.2 缺点

(1)队列越多,load时间越长,发送消息响应时间变长。

(2)使用轮询方式时,实时性取决于轮询间隔时间。

(3)相对较大的存储需求:支持持久性,并且为

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值