kafka面试题(基础-进阶-高阶)
目录
Kafka 基础篇
1.Kafka 的用途有哪些?使用场景如何?
2.Kafka 中的ISR、AR 又代表什么?ISR 的伸缩又指什么
3.Kafka 中的 HW、LEO、LSO、LW 等分别代表什么?
4.Kafka 中是怎么体现消息顺序性的?
5.Kafka 中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?
6.Kafka 生产者客户端的整体结构是什么样子的?
7.Kafka 生产者客户端中使用了几个线程来处理?分别是什么?
8.Kafka 的旧版Scala 的消费者客户端的设计有什么缺陷?
9.“消费组中的消费者个数如果超过 topic 的分区,那么就会有消费者消费不到数据”这句话是否正确?如果正确,那么有没有什么 hack 的手段?
10.有哪些情形会造成重复消费?
那些情景下会造成消息漏消费?
12.KafkaConsumer 是非线程安全的,那么怎么样实现多线程消费?
13.简述消费者与消费组之间的关系
14.当你使用 kafka-topics.sh 创建(删除)了一个 topic 之后,Kafka 背后会执行什么逻辑?
15.topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?
16.topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?
17.创建 topic 时如何选择合适的分区数?
Kakfa 进阶篇
1. Kafka 目前有哪些内部 topic,它们都有什么特征?各自的作用又是什么?
2. 优先副本是什么?它有什么特殊的作用?
3. Kafka 有哪几处地方有分区分配的概念?简述大致的过程及原理
4. 简述 Kafka 的日志目录结构
5. Kafka 中有那些索引文件?
6. 如果我指定了一个 offset,Kafka 怎么查找到对应的消息?
7. 如果我指定了一个 timestamp,Kafka 怎么查找到对应的消息?
8. 聊一聊你对 Kafka 的 Log Retention 的理解
1、基于时间
2、基于日志大小
3、基于日志起始偏移量
9.聊一聊你对 Kafka 的 Log Compaction 的理解#
10.聊一聊你对 Kafka 底层存储的理解
11.聊一聊Kafka 的延时操作的原理
12 聊一聊 Kafka 控制器的作用
13.Kafka 的旧版 Scala 的消费者客户端的设计有什么缺陷?
14.消费再均衡的原理是什么?(提示:消费者协调器和消费组协调器)
15.Kafka 中的幂等是怎么实现的?
Kafka 高级篇
1.Kafka 中的事务是怎么实现的?
2.失效副本是指什么?有那些应对措施?
3.多副本下,各个副本中的 HW 和 LEO 的演变过程
4.Kafka 在可靠性方面做了哪些改进?
5.为什么 Kafka 不支持读写分离?
6.Kafka 中的延迟队列怎么实现
7.Kafka 中怎么实现死信队列和重试队列?
8.Kafka 中怎么做消息审计?
9.Kafka 中怎么做消息轨迹?
10. 怎么计算 Lag ? ( 注意 read_uncommitted 和 read_committed 状态下的不同)
11.Kafka 有哪些指标需要着重关注?
12.Kafka 的那些设计让它有如此高的性能?
1.分区
2.网络传输上减少开销
3.顺序读写
4.零拷贝技术
5. 优秀的文件存储机制
Kafka 基础篇
1.Kafka 的用途有哪些?使用场景如何?
消息系统: Kafka 和传统的消息系统(也称作消息中间件)都具备系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。与此同时,Kafka 还提供了大多数消息系统难以实现的消息顺序性保障及回溯消费的功能。
存储系统: Kafka 把消息持久化到磁盘,相比于其他基于内存存储的系统而言,有效地降低了数据丢失的风险。也正是得益于 Kafka 的消息持久化功能和多副本机制,我们可以把Kafka 作为长期的数据存储系统来使用,只需要把对应的数据保留策略设置为“永久”或启用主题的日志压缩功能即可。
流式处理平台: Kafka 不仅为每个流行的流式处理框架提供了可靠的数据来源,还提供了一个完整的流式处理类库,比如窗口、连接、变换和聚合等各类操作。
相关文章:
kafka面试题(基础-进阶-高阶)
目录 Kafka 基础篇 1.Kafka 的用途有哪些?使用场景如何? 2.Kafka 中的ISR、AR 又代表什么?ISR 的伸缩又指什么 3.Kafka 中的 HW、LEO、LSO、LW 等分别代表什么? 4.Kafka 中是怎么体现消息顺序性的? 5.Kafka 中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序…...
《系统架构设计师教程(第2版)》第11章-未来信息综合技术-07-大数据技术概述
文章目录 1. 大数据的定义2. 大数据的研究内容2.1 面临的问题2.2 面临的挑战2.3 分析步骤2.3.1 数据获取和记录2.3.2 信息抽取和清洗2.3.3 数据集成、聚集和表示2.3.4 查询处理、数据建模和分析2.3.5 解释 3.大数据的应用领域3.1 制造业的应用3.2 服务业的应用3.3 交通行业的应…...
前端面试题54(断点续传讲解)
断点续传是一种在上传或下载大文件时,如果因为网络问题中断,可以从已经上传或下载的部分继续,而不是重新开始的技术。这对于提高用户体验和节省带宽非常有帮助。下面我将分别从HTTP协议层面、前端实现思路以及一个简单的前端实现示例来讲解断…...
YOLOv10改进 | Conv篇 | RCS-OSA替换C2f实现暴力涨点(减少通道的空间对象注意力机制)
一、本文介绍 本文给大家带来的改进机制是RCS-YOLO提出的RCS-OSA模块,其全称是"Reduced Channel Spatial Object Attention",意即"减少通道的空间对象注意力"。这个模块的主要功能是通过减少特征图的通道数量,同时关注空…...
【C++BFS】690. 员工的重要性
本文涉及知识点 CBFS算法 LeetCode690. 员工的重要性 你有一个保存员工信息的数据结构,它包含了员工唯一的 id ,重要度和直系下属的 id 。 给定一个员工数组 employees,其中: employees[i].id 是第 i 个员工的 ID。 employees[…...
视频调整帧率、分辨率+音画同步
# python data_utils/pre_video/multi_fps_crop_sync.pyimport cv2 import os from tqdm import tqdm import subprocess# 加载人脸检测模型 face_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xml)def contains_face(frame):gray …...
【深度学习】关于模型加速
模型转为半精度的会加快推理速度吗 将模型转为半精度(通常指16位浮点数,即FP16)确实可以加快推理速度,同时还能减少显存(GPU内存)的使用。以下是一些关键点: 加快推理速度的原因 减少计算量&a…...
Python中time模块用法示例详解
前言 仅供个人学习用,如果对各位朋友有参考价值,给个赞或者收藏吧 ^_^ 一、time模块介绍 time模块是Python中处理时间相关操作的核心工具,提供了时间获取、格式化、转换、延迟以及计时等多种功能。 总的来说time模块中时间可以有3种格式&…...
解决POST请求中文乱码问题
解决POST请求中文乱码问题 1、乱码原因2、解决方法3、具体步骤 💖The Begin💖点点关注,收藏不迷路💖 在Web开发中,处理POST请求时经常遇到中文乱码问题,这主要是由于服务器在接收到POST请求的数据后&#x…...
Axure-黑马
Axure-黑马 编辑时间2024/7/12 来源:B站黑马程序员 需求其他根据:visio,墨刀 Axure介绍 Axure RP是美国Axure Software Solution给公司出品的一款快速原型大的软件,一般来说使用者会称他为Axure 应用场景 拉投资使用 给项目团…...
Centos解决服务器时间不准的问题
CentOS 系统时间老是自己变化可能有以下几个原因: 硬件时钟问题:服务器的硬件时钟可能出现故障或不准确。 时区设置错误:如果时区设置不正确,可能导致显示的时间与实际期望的时间不符。 系统服务异常:与时间同步相关…...
摸鱼大数据——Kafka——Kafka的shell命令使用
Kafka本质上就是一个消息队列的中间件的产品,主要负责消息数据的传递。也就说学习Kafka 也就是学习如何使用Kafka生产数据,以及如何使用Kafka来消费数据 topics操作 注意: 创建topic不指定分区数和副本数,默认都是1个 分区数可以后期通过alter增大,但是…...
在 Linux/Debian/Ubuntu 上使用 Brasero 刻录光盘
在 Ubuntu 系统中,Brasero 是一个非常方便的光盘刻录工具。无论是创建数据光盘、音频光盘还是刻录光盘镜像文件,Brasero 都能轻松胜任。本文将介绍如何在 Ubuntu 上安装和使用 Brasero 进行光盘刻录。 安装 Brasero 在大多数 Ubuntu 版本中,…...
QT之嵌入外部第三方软件到本窗体中
一、前言 使用QT开发,有时需要调用一些外部程序,但是单独打开一个外部窗口有的场合很不合适,最好是嵌入到开发的QT程序界面中。还有就是自己开发的n个程序,一个主程序托n个子程序,为了方便管理将各个程序独立…...
解决GET请求中文乱码问题
解决GET请求中文乱码问题 1、乱码的根本原因2、解决方法方法一:修改Tomcat配置(推荐)方法二:使用URLEncoder和URLDecoder(不推荐用于GET请求乱码)方法三:String类编解码(不直接解决乱…...
弥合人类与人工智能的知识差距:AlphaZero 中的概念发现和迁移(1)
文章目录 一、摘要二、简介三、相关工作3.1 基于概念的解释3.2 强化学习中生成解释3.3 国际象棋与人工智能 四、什么是概念?五、发掘概念5.1 挖掘概念向量5.1.1 静态概念的概念约束5.1.2 动态概念的概念约束 5.2 过滤概念 一、摘要 人工智能(AIÿ…...
cpp的cbp
.cbp 文件是 Code::Blocks 的项目文件。Code::Blocks 是一个开源的跨平台集成开发环境(IDE),主要用于 C、C 以及 Fortran 编程。.cbp 文件包含有关项目的所有配置信息,包括文件路径、编译选项、链接器设置等。 以下是 .cbp 文件的…...
jQuery 选择器
jQuery 选择器 jQuery 是一个快速、小巧且功能丰富的 JavaScript 库。它使得 HTML 文档遍历和操作、事件处理、动画和 AJAX 等操作更加简单,适用于各种浏览器。jQuery 的核心特性之一是其强大的选择器引擎,它允许开发者通过 CSS 选择器语法轻松地选取和操作 DOM 元素。本文将…...
Linux系统编程-进程控制相关操作详解
进程(Process)是计算机科学中一个基本的概念,特别是在操作系统领域中非常重要。它指的是在系统中正在运行的一个程序的实例。每个进程都是系统资源分配的基本单位,是程序执行时的一个实例。以下是关于进程的详细解释: …...
分布式I/O从站的认知
为什么需要分布式I/O从站? 当PLC与控制机构距离过远时,远距离会带来信号干扰,分布式I/O从站只需要一个网络线缆连接。 ET200分布式I/O从站家族 体积紧凑、功能强大。 ET200SP ET200M ET200S ET200iSP ET200 AL ET200pro ET200 eco PN 通讯协议…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
