面试题--kafka

Kafka 是什么?

Kafka 是一款分布式流处理框架,用于实时构建流处理应用。它有一个核心 的功 能广为人知,即作为企业级的消息引擎被广泛使用。 你一定要先明确它的流处理框架地位,这样能给面试官留 下一个很专业的印象。

Kafka 的特点?

高吞吐量、低延迟:kafka 每秒可以处理几十万条消息,它的延迟最低只有几毫秒 可扩展性:kafka 集群支持热扩展 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失 容错性:允许集群中节点失败(若副本数量为 n,则允许 n-1 个节点失败) 高并发:支持数千个客户端同时读写

 什么是消费者组?

消费者组是 Kafka 独有的概念,如果面试官问这 个,就说明他对此是有一定了解 的。我先给出标准答案: 1、定义:即消费者组是 Kafka 提供的可扩展且具有容错性的消费者机制。 2、原理:在 Kafka 中,消费者组是一个由多个消费者实例 构成的组。多个实例共同订阅 若干个主题,实现共同消费。同一个组下的每个实例都配置有 相同的组 ID,被分配不同 的订阅分区。当某个实例挂掉的时候,其他实例会自动地承担起 它负责消费的分区。此时,又有一个小技巧给到你:消费者组的题目,能够帮你在某种程度上掌控下面的 面试方向。 如果你擅长位移值原理,就不妨再提一下消费者组的位移提交机制; 如果你擅长 Kafka Broker,可以提一下消费者组与 Broker 之间的交互; 如果你擅长与消费者组完全不相关的 Producer,那么就可以这么说:“消费者组要 消 费的数据完全来自于 Producer 端生产的消息,我对 Producer 还是比较熟 悉的。”

Kafka 中,ZooKeeper 的作用是什么?

这是一道能够帮助你脱颖而出的题目。碰到这个题目,请在心中暗笑三声。 目前,Kafka 使用 ZooKeeper 存放集群元数据、成员管理、Controller 选举,以及 其他一些管理类任务。之后,等 KIP-500 提案完成后,Kafka 将完全不再依赖 于 ZooKeeper。 记住,一定要突出“目前”,以彰显你非常了解社区的演进计划。“存放元数据” 是指主题 分区的所有数据都保存在 ZooKeeper 中,且以它保存的数据为权威,其他“人” 都要与它 保持对齐。“成员管理”是指 Broker 节点的注册、注销以及属性变更,等 等。 “Controller 选举”是指选举集群 Controller,而其他管理类任务包括但不限于主题 删除、 参数配置等。 不过,抛出 KIP-500 也可能是个双刃剑。碰到非常资深的面试官,他可能会进一步 追问你 KIP-500 是做的。一言以蔽之:KIP-500 思想,是使用社区自研的基于 Raft 的共识算 法, 替代 ZooKeeper,实现 Controller 自选举。

如何估算 Kafka 集群的机器数量?

这道题目考查的是机器数量和所用资源之间的关联关系。所谓资源,也就是 CPU、 内存、磁盘和带宽。 通常来说,CPU 和内存资源的充足是比较容易保证的,因此,你需要从磁盘空间和 带宽占用两个维度去评估机器数量。 在预估磁盘的占用时,你一定不要忘记计算副本同步的开销。如果一条消息占用 1KB 的磁 盘空间,那么,在有 3 个副本的主题中,你就需要 3KB 的总空间来保存这条消 息。显式地 将这些考虑因素答出来,能够彰显你考虑问题的全面性,是一个难得的加分项。 对于评估带宽来说,常见的带宽有 1Gbps 和 10Gbps,但你要切记,这两个数字仅 仅是最大值。因此,你最好和面试官确认一下给定的带宽是多少。然后,明确阐述出当带宽 占用接 近总带宽的 90% 时,丢包情形就会发生。这样能显示出你的网络基本功。

Kafka 为什么不支持读写分离?

这道题目考察的是你对 Leader/Follower 模型的思考。 Leader/Follower 模型并没有规定 Follower 副本不可以对外提供读服务。很多框架 都是允 许这么做的,只是 Kafka 最初为了避免不一致性的问题,而采用了让 Leader 统一 提供服 务的方式。 不过,在开始回答这道题时,你可以率先亮出观点:自 Kafka 2.4 之后,Kafka 提供 了有限度的读写分离,也就是说,Follower 副本能够对外提供读服务。 说完这些之后,你可以再给出之前的版本不支持读写分离的理由。 场景不适用:读写分离适用于那种读负载很大,而写操作相对不频繁的场景,可 Kafka 不属于这样的场景。157 同步机制:Kafka 采用 PULL 方式实现 Follower 的同步,因此,Follower 与 Leader 存 在不一致性窗口。如果允许读 Follower 副本,就势必要处理消息滞后(Lagging)的问题。

写在最后:kafka也是一款中间件,最近博主会更多的分享一些中间件相关文章,最近自身工作也接触到了很多中间件,慢慢会与大家分享。博主小,中,大厂均有面试经验,每日分享Java全栈开发知识,希望能够和大家共同进步。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

走进机器学习

第1关:走进机器学习 机器学习简介 机器学习近年来被大规模应用在各种领域,特别是 NLP 领域。虽然机器学习是门建立在统计和优化上的新兴学科,但是在自然语言处理、数据科学等领域,它却占据着核心的地位。 图 1 机器学习最初的研…

论文降重困难重重?AI降重来帮忙

论文查重和降重是确保学术成果原创性及学术诚信的关键步骤,直接影响我们的学业成果和毕业资格。传统的论文查重方法主要包括使用查重软件和个人自查,而论文降重通常涉及改写、使用同义词替换、内容的扩展和深化,以及正确的引用和注释等方式来…

企业数据治理的下一步是数据资产管理?

随着信息技术的飞速发展和数字化转型的深入推进,企业数据已成为驱动业务增长和创新的核心要素。当企业数据治理工作取得显著成效后,如何进一步发挥数据的价值,实现数据资产的有效管理,成为企业面临的重要课题。 数据治理的基石作用…

记录一次OPDS trunc()函数使用错误

说明:本文介绍 场景 在一次SQL查询时,需要对结果值保留两位小数,不四舍五入,直接截取到小数点后两位。如 59.156到59.15,23.2134到23.21,查看官方帮助文档(https://help.aliyun.com/zh/maxcom…

8个Unity开发高手都在用的秘密技巧!

1. 不要重新发明轮子,使用内置的引擎工具 在使用任何引擎时,比如Unity或Unreal Engine,一些开发者,主要是来自计算机科学领域的开发者,可能会倾向于从头开始开发大型算法或结构,而不去了解引擎中是否已经存…

多线程(基础)

前言👀~ 上一章我们介绍了什么是进程,对于进程就了解那么多即可,我们作为java程序员更关注线程,线程内容比较多,所以我们要分好几部分才能讲完 目录 进程的缺点 多线程(重要) 进程和线程的区…

数据分析必备:一步步教你如何用matplotlib做数据可视化(14)

1、Matplotlib 图像 Matplotlib包中的图像模块提供加载,重新缩放和显示图像所需的功能。Pillow库支持加载图像数据。Matplotlib仅支持PNG图像。如果本机读取失败,下面显示的命令将回退到Pillow。 此示例中使用的图像是PNG文件,但请记住数据的…

计算机网络之奇偶校验码和CRC冗余校验码

今天我们来看看有关于计算机网络的知识——奇偶校验码和CRC冗余校验码,这两种检测编码的方式相信大家在计算机组成原理当中也有所耳闻,所以今天我就来跟大家分享有关他们的知识。 奇偶校验码 奇偶校验码是通过增加冗余位使得码字中1的个数恒为奇数或偶数…

JS在线加密简述

JS在线加密,是指:在线进行JS代码混淆加密。通过混淆、压缩、加密等手段,使得JS源代码难以阅读和理解。从而可以有效防止代码被盗用或抄袭,保护开发者的知识产权和劳动成果。常用的JS在线加密网站有:JShaman、JS-Obfusc…

AI写作助力:如何用AI降重工具快速提升论文原创性?

高查重率是许多毕业生的困扰。通常,高查重率源于过度引用未经修改的参考资料和格式错误。传统的降重方法,如修改文本和增添原创内容,虽必要但耗时且成效不一。 鉴于此,应用AI工具进行AIGC降重成为了一个高效的解决方案。这些工具…

线性相关,无关?秩?唯一解(只有零解),无穷解(有非零解)?D=0,D≠0?

目录 线性有关无关 和 唯一解(只有零解),无穷解(有非零解)之间的关系 D0,D≠0? 和 秩 的关系 串起来: 线性相关,无关?秩?唯一解(只…

cuda 学习笔记4

一 基本函数 在GPU上开辟空间,无论定义的数据是float还是int ,还是****gpu_int,分配空间的函数都是下面固定的形式 (void**)& 1.函数定义,global void 是配套使用的,是在GPU上定义,也就是GPU上执行,CPU上调用的函数…

【软件测试】白盒测试与接口测试详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是白盒测试 白盒测试是一种测试策略,这种策略允许我们检查程序的内部结构&a…

短视频带货实战营(高阶课),从0到1做个赚钱的抖音号(17节课)

课程目录: 1-短视频带贷先导课_1.mp4 2-账号搭建_1.mp4 3-账号养号涨粉套路_1.mp4 4-开通橱窗_1.mp4 5-管家式选品_1.mp4 6-六个能赚钱的赛道_1.mp4 7-选品之精选联盟_1.mp4 8-好物分享的三种形式_1.mp4 9-短视频之图文课_1.mp4 10-短视频之剪辑课_1.mp4 …

el-upload+python fastAPI实现上传文件

el-upload通过action指定后端接口&#xff0c;并通过name指定传输的文件包裹在什么变量名中 <el-uploadclass"upload-demo"dragaction"https://ai.zscampus.com/toy/upload"multiplename"fileList":limit"10"accept".xlsx, .x…

昇思25天学习打卡营第9天|使用静态图加速

一、简介&#xff1a; AI编译框架分为两种运行模式&#xff0c;分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行&#xff0c;但也支持手工切换为静态图模式。两种运行模式的详细介绍如下&#xff1a; &#xff08;1&#xff09;动态图&#xff1a; …

如何使用Hugging Face Transformers为情绪分析微调BERT?

情绪分析指用于判断文本中表达的情绪的自然语言处理(NLP)技术&#xff0c;它是客户反馈评估、社交媒体情绪跟踪和市场研究等现代应用背后的一项重要技术。情绪可以帮助企业及其他组织评估公众意见、提供改进的客户服务&#xff0c;并丰富产品或服务。 BERT的全称是来自Transfo…

The First Descendant第一后裔联机失败、联机报错这样处理

第一后裔/The First Descendant是一款免费的多人合作射击游戏&#xff0c;玩家将进入一片混乱的英格里斯大陆&#xff0c;扮演继承者后裔&#xff0c;通过各种主支线任务和故事剧情触发&#xff0c;最终揭开自身的秘密&#xff0c;并带领大家一起抵抗邪恶势力的入侵。为了避免玩…

【Java Web】三大域对象

目录 一、域对象概述 二、三大域对象 三、域对象使用相关API 一、域对象概述 一些可用于存储数据和传递数据的对象被称为域对象&#xff0c;根据传递数据范围的不同&#xff0c;我们称之为不同的域&#xff0c;不同的域对象代表不同的域&#xff0c;共享数据的范围也不同。 二、…

ISP IC/FPGA设计-第一部分-SC130GS摄像头分析-IIC通信(1)

1.摄像头模组 SC130GS通过一个引脚&#xff08;SPI_I2C_MODE&#xff09;选择使用IIC或SPI配置接口&#xff0c;通过查看摄像头模组的原理图&#xff0c;可知是使用IIC接口&#xff1b; 通过手册可知IIC设备地址通过一个引脚控制&#xff0c;查看摄像头模组的原理图&#xff…