50个kafka常见面试题及答案,撸完阿里P7见

这篇具有很好参考价值的文章主要介绍了50个kafka常见面试题及答案,撸完阿里P7见。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LEO:LogEndOffset 当前日志文件中下一条待写信息的offset

HW/LEO这两个都是指最后一条的下一条的位置而不是指最后一条的位置。

LSO:Last Stable Offset 对未完成的事务而言,LSO 的值等于事务中第一条消息的位置(firstUnstableOffset),对已完成的事务而言,它的值同 HW 相同

LW:Low Watermark 低水位, 代表 AR 集合中最小的 logStartOffset 值

4. Kafka中是怎么体现消息顺序性的?

kafka每个partition中的消息在写入时都是有序的,消费时,每个partition只能被每一个group中的一个消费者消费,保证了消费时也是有序的。

整个topic不保证有序。如果为了保证topic整个有序,那么将partition调整为1.

5. Kafka中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?

拦截器->序列化器->分区器

6. Kafka生产者客户端的整体结构是什么样子的?

7. Kafka生产者客户端中使用了几个线程来处理?分别是什么?

2个,主线程和Sender线程。主线程负责创建消息,然后通过分区器、序列化器、拦截器作用之后缓存到累加器RecordAccumulator中。Sender线程负责将RecordAccumulator中消息发送到kafka中.

9. Kafka的旧版Scala的消费者客户端的设计有什么缺陷?

10. “消费组中的消费者个数如果超过topic的分区,那么就会有消费者消费不到数据”这句话是否正确?如果不正确,那么有没有什么hack的手段?

不正确,通过自定义分区分配策略,可以将一个consumer指定消费所有partition。

11. 消费者提交消费位移时提交的是当前消费到的最新消息的offset还是offset+1?

offset+1

12. 有哪些情形会造成重复消费?

消费者消费后没有commit offset(程序崩溃/强行kill/消费耗时/自动提交偏移情况下unscrible)

13. 那些情景下会造成消息漏消费?

消费者没有处理完消息 提交offset(自动提交偏移 未处理情况下程序异常结束)

14. KafkaConsumer是非线程安全的,那么怎么样实现多线程消费?

1.在每个线程中新建一个KafkaConsumer

2.单线程创建KafkaConsumer,多个处理线程处理消息(难点在于是否要考虑消息顺序性,offset的提交方式)

15. 简述消费者与消费组之间的关系

消费者从属与消费组,消费偏移以消费组为单位。每个消费组可以独立消费主题的所有数据,同一消费组内消费者共同消费主题数据,每个分区只能被同一消费组内一个消费者消费。

16. 当你使用kafka-topics.sh创建(删除)了一个topic之后,Kafka背后会执行什么逻辑?

创建:在zk上/brokers/topics/下节点 kafkabroker会监听节点变化创建主题

删除:调用脚本删除topic会在zk上将topic设置待删除标志,kafka后台有定时的线程会扫描所有需要删除的topic进行删除

17. topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?

可以

18. topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?

不可以

19. 创建topic时如何选择合适的分区数?

根据集群的机器数量和需要的吞吐量来决定适合的分区数

20. Kafka目前有那些内部topic,它们都有什么特征?各自的作用又是什么?

__consumer_offsets 以下划线开头,保存消费组的偏移

21. 优先副本是什么?它有什么特殊的作用?

优先副本 会是默认的leader副本 发生leader变化时重选举会优先选择优先副本作为leader

22. Kafka有哪几处地方有分区分配的概念?简述大致的过程及原理

创建主题时

如果不手动指定分配方式 有两种分配方式

消费组内分配

23. 简述Kafka的日志目录结构

每个partition一个文件夹,包含四类文件.index .log .timeindex leader-epoch-checkpoint

.index .log .timeindex 三个文件成对出现 前缀为上一个segment的最后一个消息的偏移 log文件中保存了所有的消息 index文件中保存了稀疏的相对偏移的索引 timeindex保存的则是时间索引

leader-epoch-checkpoint中保存了每一任leader开始写入消息时的offset 会定时更新

follower被选为leader时会根据这个确定哪些消息可用

24. Kafka中有那些索引文件?

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

kafka面试题,程序员,kafka,分布式

kafka面试题,程序员,kafka,分布式

kafka面试题,程序员,kafka,分布式

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以扫码领取!

kafka面试题,程序员,kafka,分布式

读者福利

kafka面试题,程序员,kafka,分布式

更多笔记分享

kafka面试题,程序员,kafka,分布式

72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

读者福利

[外链图片转存中…(img-3xxDOOI6-1711357071886)]

更多笔记分享

[外链图片转存中…(img-Ltd9OaCi-1711357071886)]

需要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!文章来源地址https://www.toymoban.com/news/detail-850929.html

到了这里,关于50个kafka常见面试题及答案,撸完阿里P7见的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker常见面试题 | 答案

    目录 1、Docker 是什么? 2、Docker的三大核心是什么? 3、仓库、镜像、容器的关系是? 4、Docker与虚拟机的区别 5、Docker容器的集中状态 6、如何把主机的东西拷贝到容器内部? 7、进入容器的方法有哪些? 8、如何让容器随着 Docker 服务启动而自动启动? 9、如何指定容器的端口映

    2024年01月20日
    浏览(35)
  • ES 常见面试题及答案

    目录 es 写入数据流程 es 删除数据流程 es 读数据流程 es 部署的服务有哪些角色 es 的实现原理 es 和lucence 关系 如何提高写入效率 提高搜索效率 es doc value指的啥 分片指的啥,定义后可不可义再修改  深分页如何优化 对于聚合操作是如何优化的 元数据有哪些,保存在哪里的 是

    2024年04月15日
    浏览(41)
  • 接口测试常见面试题(含答案)

    目录 1.http协议和https的区别?     2. 常见的post提交数据的方式有哪些?  3. 常见的请求头以及它们的作用是什么?  4. get请求和post的区别? 5. 接口请求中常用的返回状态码  6. cookie,session,token有什么相同点,不同点?    7. 你们公司是如何做接口测试的?(包括︰接口测

    2024年02月13日
    浏览(32)
  • uniApp常见面试题-附详细答案

    uniApp中如何进行页面跳转? 答案:可以使用uni.navigateTo、uni.redirectTo和uni.reLaunch等方法进行页面跳转。其中,uni.navigateTo可以实现页面的普通跳转,uni.redirectTo可以实现页面的重定向跳转,uni.reLaunch可以实现关闭所有页面,打开到应用内的某个页面。 示例代码: uniApp中如何进

    2024年02月09日
    浏览(40)
  • 35个MySQL常见面试题+答案

    今天给大家总结了35 个 Mysql 常见的小问题 1.说一说三大范式 2.MyISAM 与 InnoDB 的区别是什么? 3.为什么推荐使用自增 id 作为主键? 4.一条查询语句是怎么执行的? 5.使用 Innodb 的情况下,一条更新语句是怎么执行的? 6.Innodb 事务为什么要两阶段提交? 7.什么是索引? 8.索引失效的场

    2024年02月16日
    浏览(26)
  • Qt_30道常见面试题及答案

    1. 简述 Qt 是什么? 答:Qt 是一个跨平台的应用程序开发框架,它提供了一系列的工具和库,用于开发图形用户界面(GUI)应用程序。 2. Qt 有哪些主要模块? 答:Qt 的主要模块包括 Qt Core、Qt Gui、Qt Widgets、QtMultimedia、Qt Network 等。 3. 如何在 Qt 中创建一个窗口? 答:可以使用

    2024年04月13日
    浏览(30)
  • 大模型LLMs 部分常见面试题答案-基础面

      题库来源:GitHub - km1994/LLMs_interview_notes: 该仓库主要记录 大模型(LLMs) 算法工程师相关的面试题 目录 1. Prefix Decoder、Causal Decoder和Encoder-Decoder的区别 1.1 Prefix Decoder 1.2 Causal Decoder 1.3 Encoder-Decoder 2. 大模型LLM的训练目标 3. 涌现能力的原因 4. 为何现在的大模型大部分是Decod

    2024年02月06日
    浏览(31)
  • 2023网络安全常见面试题汇总(附答案解析+配套资料)

    以下为网络安全各个方向涉及的面试题,星数越多代表问题出现的几率越大,祝各位都能找到满意的工作。 注:所有的资料都整理成了PDF,面试题和答案将会持续更新,因为无论如何也不可能覆盖所有的面试题。 目录 一、渗透测试 二、Web安全相关 三、PHP安全 四、JAVA安全

    2024年02月15日
    浏览(27)
  • 五个关于CSS3的常见面试题及其答案

    1. 请解释 CSS3 中的盒子模型(Box Model)是什么? 答案:CSS3中的盒子模型是用来描述网页上每个元素所占空间的模型。它包括四个部分:内容区域(content)、内边距(padding)、边框(border)和外边距(margin)。内容区域是元素内部实际包含内容的区域;内边距是内容区域与边

    2024年04月26日
    浏览(28)
  • Spring常见面试题55道(附答案2023最新版)

    Spring框架是一个开源的Java平台,它最初由Rod Johnson创建,并在2003年首次公布。它的主要功能是简化Java开发,特别是企业级应用程序的开发。Spring框架的设计哲学是通过提供一系列模块化的组件,帮助开发者创建高性能、易测试、可重用的代码。现在,让我们更深入地了解S

    2023年04月22日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包