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 不仅为每个流行的流式处理框架提供了可靠的数据来源,还提供了一个完整的流式处理类库,比如窗口、连接、变换和聚合等各类操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django招聘数据分析与可视化管理系统-计算机毕业设计源码55218

摘要 随着互联网的迅速发展,招聘数据在规模和复杂性上呈现爆炸式增长,对数据的深入分析和有效可视化成为招聘决策和招聘管理的重要手段。本论文旨在构建一个基于Python的招聘数据分析与可视化管理系统。 该平台以主流招聘平台为数据源,利用Py…

四元数和旋转矩阵的求导

四元数的导数 四元数关于时间求导的推导 本质: 求导的定义是函数值的微增量关于自变量的微增量的极限。表示旋转的单位四元数作差后,其不再是单位四元数,也就不是旋转四元数了。单位四元数作差后,得到是被减四元数所在空间的切空…

直观易用的大模型开发框架LangChain,你会了没?

目录 简介基本组件小试牛刀关于沟通代码案例:调用Embedding、Completion、Chat Model总结 目前LangChain框架在集团大模型接入手册中的学习案例有限,为了让大家可以快速系统地了解LangChain大模型框架并开发,产出此文章。本文章包含了LangCha…

视频监控汇聚平台LntonCVS视频集中存储平台解决负载均衡的方案

随着技术的进步和企业对监控需求的增加,视频监控系统规模不断扩大,接入大量设备已成常态化挑战。为应对这一挑战,视频汇聚系统LntonCVS视频融合平台凭借其卓越的高并发处理能力,为企业视频监控管理系统提供可靠的负载均衡服务保障…

vue3实现一个接球小游戏

使用 Vue3 ts canvas 实现一个web端接球小游戏&#xff0c;主要交互包括&#xff1a;操作键盘的【<】【>】来滑动手柄去接球、游戏开始、游戏暂停、游戏继续、游戏重新开始、游戏失败&#xff0c;用到的知识包括&#xff1a;ts、canvas绘图、事件监听器的添加与移除&am…

优化 Java 数据结构选择与使用,提升程序性能与可维护性

优化 Java 数据结构选择与使用&#xff0c;提升程序性能与可维护性 引言 在软件开发中&#xff0c;数据结构的选择是影响程序性能、内存使用以及代码可维护性的关键因素之一。Java 作为一门广泛使用的编程语言&#xff0c;提供了丰富的内置数据结构&#xff0c;如数组、链表、…

JavaSE 面向对象程序设计进阶 IO 综合练习 利用糊涂包生成假数据 随机点名器 登录案例

目录 生成假数据 利用糊涂包生成假数据 随机点名器 综合练习 生成假数据 制造假数据 制造假数据也是开发中的一个能力 在各个网上爬取数据 这是其中一个方法 爬取网站中的内容 import cn.hutool.core.io.FileUtil;import java.io.IOException; import java.io.InputSt…

编程语言的选择:如何根据项目需求找到最合适的语言

在软件开发过程中&#xff0c;选择合适的编程语言是项目成功的关键之一。不同的编程语言拥有各自独特的特性和优势&#xff0c;适用于不同类型的项目。本文将从项目需求、团队技能、语言特性等多个角度&#xff0c;探讨如何为特定项目找到最合适的编程语言。 明确项目需求 首…

n2. Web相关工具

Web相关工具 1. http协议状态码2. Web相关工具2.1 links2.2 wget2.3 curl 3. httpd的压力测试工具 1. http协议状态码 http协议状态码分类 1xx&#xff1a;100-101 信息提示 2xx&#xff1a;200-206 成功 3xx&#xff1a;300-307 重定向 4xx&#xff1a;400-415 错误类信息&a…

昇思25天学习打卡营第24天 | LSTM+CRF序列标注

内容介绍&#xff1a; 序列标注指给定输入序列&#xff0c;给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取&#xff0c;包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。以命名实…

【JavaScript 算法】二分查找:快速定位目标元素

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 二分查找&#xff08;Binary Search&#xff09;是一种高效的查找算法&#xff0c;适用于在有序数组中快速定位目标元素。相比于线性查找&#xff0c;二分查找…

护(H)网(W)行动正当时:你对HW知多少,一文带你全面了解护网行动

引言&#xff1a;2016年我国发布了《网络安全法》&#xff08;于2017年6月1日正式生效&#xff09;&#xff0c;明确规定了关键信息基础设施的运营者必须制定网络安全事件应急预案&#xff0c;并定期进行演练&#xff0c;为HW行动的开展提供了法律依据&#xff0c;通过红蓝对抗…

嵌入式裸机开发与 Linux 开发

引言 嵌入式系统在现代电子设备中占有重要地位&#xff0c;其开发模式主要分为裸机开发和基于操作系统&#xff08;如 Linux&#xff09;的开发。本文将详细介绍嵌入式裸机开发和 Linux 开发的特点、优缺点&#xff0c;并进行对比分析&#xff0c;以帮助读者更好地理解和选择合…

js 移动数组元素的几个方法

位置交换 /*** param {any[]} arr - 原始数组。* param {number} fromIndex - 当前元素所在位置索引。* param {number} toIndex - 移动到交换的位置索引。* returns {any[]} 返回修改后的数组。*/ const swapItem function(arr, fromIndex, toIndex) {arr[toIndex] arr.spl…

35、php 实现构建乘积数组、正则表达式匹配

题目&#xff1a; uniapp-v3是基于vue3语法的&#xff0c;在hbuilderx中运行即可 Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minifies for production npm run build 在HBuilderX中导入src文件打包;打包H5手机版可以…

Unity 中使用状态机模式来管理UI

1. 清晰的状态管理 状态机模式允许你以结构化的方式管理不同的UI状态。每个状态&#xff08;比如主菜单、设置菜单、游戏中界面等&#xff09;都有其独立的行为和属性&#xff0c;这使得管理复杂UI逻辑变得更加清晰和可维护。 2. 简化的状态切换 状态机模式可以简化不同UI状…

报表控件DevExpress Reporting中文教程 - 如何创建穿透钻取报表?

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 钻取报表允许用户通过单击主/活动报表文档中的…

Android的dtbo文件介绍

文章目录 设备树&#xff08;Device Tree&#xff09;设备树覆盖&#xff08;Device Tree Overlay, DTO&#xff09;dtbo文件的作用使用流程示例 dtbo 文件是 Android 设备中的设备树覆盖文件&#xff08;Device Tree Blob Overlay&#xff09;。它用于动态地修改设备树配置&am…

智能酒精壁炉与会所会客厅的氛围搭配

智能酒精壁炉与会所会客厅的氛围搭配可以创造出现代、高雅且舒适的环境&#xff0c;提升客人的整体体验。以下是如何将智能酒精壁炉与会所会客厅氛围相协调的几点建议&#xff1a; 现代化与高品位感&#xff1a; 智能酒精壁炉展现出现代化的设计和高科技特点&#xff0c;与会所…

应急响应-战后溯源反制社会工程学

&#x1f3bc;个人主页&#xff1a;金灰 &#x1f60e;作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持&#xff01;❤️ &#x1f34a;易编橙终身成长社群&#…