news 2026/4/23 15:01:42

Kafka相关面试题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kafka相关面试题

kafka是什么?有什么用?

Kafka是一个分布式流处理平台,基于发布-订阅模式,在java中主要用在消息队列中。
作用:
1.解耦(订单,支付,扣库存之间无强依赖关系)、
2.削峰填谷(巨量流量冲击,缓冲处理)、
3.异步通信(Kafka异步处理订单后,发送短信通知)

kafka包含什么组件,有什么作用?

核心组件:
生产者:发送消息到Topic,由分区策略制定该主题的哪个分区;
Broker:存储,处理消息;
Topic主题:生产者发送消息到Topic,消费者从Topic中消费消息;
partition分区:每个topic有多个分区,会放置到多个不同的Broker中;
消费者:订阅并消费消息,需制定Topic和分区。
可组成消费者组,同一组内的消费者分工消费不同分区(避免重复消费),不同组可独立消费同一 Topic。
Replica(副本):每个分区有多个副本(1 个 Leader 副本 + 多个 Follower 副本),Leader 负责处理读写请求,Follower 同步 Leader 数据。若 Leader 故障,Follower 会被选举为新 Leader,保证数据不丢失。
ZooKeeper(协调者):早期 Kafka 依赖 ZooKeeper 管理集群元数据(如 Broker 节点状态、Topic 分区信息、消费者组偏移量等)

类比:以服装生产到销售的全流程类比
生产者: 服装工厂 - 与批发市场里的经销商户(分区)对接,卖的是服装类(Topic);
Broker: 单个批发市场 - 入驻了不少经销商户;
分区: 经销商户 - 入驻于批发市场,将服装工厂(producer)送过来的服装(消息)存储在分区队列(经销商仓库)中;
消费者组: 经销商户的门店 - 将分区队列的消息(衣服)进行消费(悬挂售卖);
消费者: 店员 - 店员是不能直接去经销商拿货,必须以消费者组的形式消费;
备份: 相同功能的其他批发市场(防止失火停摆)
Offset(偏移量):提货清单 - 在经销商按照指定顺序,分批提货,如,第一批拿了1-99号,第二批拿100-199号衣服;

  • 简化一下就是生产者->分区->消费者组
    其中分区是物理上位于Broker,分区逻辑上属于某个Topic,消费者组(消费只能以组的形式消费,哪怕1组只有1个消费者),消费者组消费某个topic,自动分配消费者组下的消费者去不同的分区消费
    消费者组和分区的关系:同组防重复,跨组不干涉;
    消费者组:哪怕只有1个消费者,也要组成1个消费者的组,消费时以组为单位进行消费

Kafka的分区有什么用?为什么要设计分区?

a.分区可以提高kafka并行读写的能力,生产者可以像不同分区发消息,无需单分区排队;
b.单topic单分区数据量大时压力极大,多分区抗压
c.分区消息按顺序写入,保证分区内的有序
d.多分区leader和follwer备份,高可用

Kafka 的生产者发送消息时,如何决定消息被分配到哪个分区?有哪些分区策略?

1.轮询策略(Round - Robin)
2.随机策略(Random)
3.按消息键(Key)的哈希值策略(某个消息键的哈希值为 10,10 % 5 = 0,那么该消息就会被发送到分区 0。)

Kafka 中的消费者组(Consumer Group)有什么作用呢?

1.实现多个分区并行消费
2.动态增减消费者,实现消费者的负载均衡

它是如何保证消息消费的一致性和负载均衡的?

3.消费一致性保证(不会重复消费,偏移量记录消费的位置)
4.负载均衡实现(消费者的存活监听,分区根据消费者增减进行再平衡分配)

Kafka 中的副本(Replica)机制是如何保障数据的可靠性和高可用性的?请详细阐述副本的角色、同步过程以及故障处理机制。

在 Kafka 生产环境中,如果生产者没把消息发送到 Broker,可能有哪些原因,你会如何排查和解决?

1.生产者与 Broker 之间网络不通,比如网络设备故障、防火墙阻挡 Kafka 通信端口(默认 9092)。
2.Kafka负载过高,请求缓慢或无法写入新消息

在 Kafka 生产环境中,假设 Broker 收到了生产者的消息并返回了 ACK,但实际上消息丢失了,可能是什么原因,该如何处理?

同步分为0(效率高,不安全) 、1(效率和安全平衡)、-1(安全,效率低)
网络波动带来的leader和follwer同步延迟,部分follower还未成功同步,leader所在的broker就宕机了;
1.优化网络,增加副本数量
2.消息队列offerset对不上,虽然ack了,但也可以让生产者重发,重发仍用原id(幂等性),最后让消费者消费;

  • 待更新
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 11:04:44

WebGL+Three.js入门与实战,系统学习Web3D技术

你是否曾惊叹于网页上那些酷炫的 3D 展示、沉浸式体验或互动游戏,并好奇它们是如何实现的?Web3D 正在以前所未有的速度融入我们的数字生活,而它并非遥不可及的黑魔法。今天,我想与你分享从零开始踏入这个奇妙世界的实战心得&#…

作者头像 李华
网站建设 2026/4/23 13:00:59

【YOLO11-MM 多模态目标检测】CA/ECA/GAM/CAA注意力增强模态特征

目录 一、引言 二、注意力优势、结构图、代码 2.1 CA注意力 2.2 ECA注意力 2.3 GAM注意力 2.4 CAA注意力 1. CAA(Context Anchor Attention)的优势特点 2. 在本文中的突出贡献 三、逐步手把手添加CA/ECA/GAM/CAA注意力 3.1 第一步 3.2 第二步 3.3 第三步 3.4 第四…

作者头像 李华
网站建设 2026/4/23 12:46:53

3D抽奖系统完整指南:快速构建企业级动态抽奖平台

还在为年会活动策划发愁吗?传统抽奖方式单调乏味,参与者兴致缺缺?log-lottery项目正是为解决这一需求而生!这个基于Vue 3和Three.js开发的3D球体动态抽奖应用,让企业活动瞬间升级为科技感十足的互动盛宴。只需简单配置…

作者头像 李华
网站建设 2026/4/23 14:12:51

ServerPackCreator终极指南:3步搞定Minecraft服务器包自动化创建

ServerPackCreator终极指南:3步搞定Minecraft服务器包自动化创建 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/se/ServerPack…

作者头像 李华
网站建设 2026/4/19 19:36:42

HAT超分辨率重建注意力机制,用于目标检测和性能提升

HAT超分辨率重建注意力机制,也可用于目标检测,有效涨点。 混合注意力变换器(HAT)的设计理念是通过融合通道注意力和自注意力机制来提升单图像超分辨率重建的性能。通道注意力关注于识别哪些通道更重要,而自注意力则关注…

作者头像 李华
网站建设 2026/4/23 12:10:26

/etc/hosts如何配置

基本格式IP地址 完整域名 别名1 别名2 ... 别名N ↑ ↑ ↑ 必需 推荐 可选# 多个字段用空格或制表符分隔 127.0.0.1 localhost.localdomain localhost 192.168.1.100 server1.company.com server1 s1正确的示例#…

作者头像 李华