Kafka面试题(三)-- 内含面试重点

devtools/2024/11/28 7:40:42/

文章目录

    • 1、Kafka中如何做到数据唯一(数据去重)(面试重点)
    • 2、你知道 Kafka 是如何做到消息的有序性?【面试重点】
    • 3、kafka是如何处理数据乱序问题的。
    • 4、zk在Kafka集群中有何作用?
    • 5、简述Kafka集群中的Leader选举机制(面试重点)


1、Kafka中如何做到数据唯一(数据去重)(面试重点)

  • 至少一次(At Least Once)= ACK级别设置为-1 + 分区副本大于等于2 + ISR里应答的最小副本数量大于等于2
  • 最多一次(At Most Once)= ACK级别设置为0
  • 精确一次(Exactly Once):就是至少一次+幂等性+事务,对于一些非常重要的信息,比如和钱相关的数据,要求数据既不能重复也不丢失。
  • 总结:
    至少一次可以保证数据不丢失,但是不能保证数据不重复;
    最多一次可以保证数据不重复,但是不能保证数据不丢失。
    精确一次可以保证数据不丢失,也可以保证数据不重复。

2、你知道 Kafka 是如何做到消息的有序性?【面试重点】

生产者发送的数据,单分区内可以做到有序,多分区,无法保证,除非把多个分区的数据拉到消费者端,进行排序,但这样做需要等待生产者将数据发送完毕,这显然是不切合实际的,而且效率很低,还不如直接设置一个分区。

kafka_19">3、kafka是如何处理数据乱序问题的。

开启幂等性,且设置sender线程中可以缓存kafka集群没有应答的请求数量小于等于5

4、zk在Kafka集群中有何作用?

zk用来存放一些Kafka的基本信息,比如:
/Kafka/brokers/ids下面记录了有哪些服务器节点
/Kafka/brokers/topic下面记录了有哪些主题,以及主题下面记录了谁是Leader,有哪些服务器可以用
/Kafka/controller下面记录了辅助选举的一些信息
在/Kafka/consumers里面,老版本0.9版本之前,存放的是消费者的偏移量,新版本的根本没放在zk中,直接放在集群中了

[图片]

5、简述Kafka集群中的Leader选举机制(面试重点)

1)每一个broker上线时,会在zk中进行注册
2)每个broker中都有一个controller,哪个controller先在zk中注册,谁选举时说了算
3)选举规则是:在ISR中存活为前提,按照AR中排在前面的优先
4)说的算的controller检测broker节点的变化,将节点信息上传到zk,其他controller从zk中同步节点信息
5)假定broker中的leader挂掉了,controller监听到节点变化,会进行重新的选举,并更新ISR


http://www.ppmy.cn/devtools/137602.html

相关文章

IDEA全局设置-解决maven加载过慢的问题

一、IDEA全局设置 注意:如果不是全局设置,仅仅针对某个项目有效;例在利用网上教程解决maven加载过慢的问题时,按步骤设置却得不到解决,原因就是没有在全局设置。 1.如何进行全局设置 a.在项目页面,点击f…

Burp入门(4)-扫描功能介绍

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:burp功能介绍(1)_哔哩哔哩_bilibili 本文介绍burp的主动扫描和被动扫描功能。 一、主动扫描 工作原理: 主动…

20241127 给typecho文章编辑附件 添加视频 图片预览

Typecho在写文章时,如果一次性上传太多张图片可能分不清哪张,因为附件没有略缩图,无法实时阅览图片,给文章插入图片时很不方便。 编辑admin/file-upload.php 大约十八行的位置 一个while 循环里面,这是在进行html元素更新操作,在合…

【MySQL】数据库的基本认识和使用

为什么要使用数据库呢?我们知道Linux是有文件系统的,为什么不使用文件系统呢? 因为OS只负责把我们交给它的数据存储起来,存到某个文件中,它并不负责管理数据的具体内容,也就是说,我们交给OS什么…

sk_buff 定义及其操作

转载:sk_buff 定义及其操作_skbuf-CSDN博客

试题转excel;试题整理工具;试卷转excel;word转excel

一、问题描述 我父亲是一名教师,偶尔会需要将试卷转excel,方便管理处理一些特别重要的题目 于是,就抽空写一个专门将试题转excel的工具,便于各位教师从业者和教育行业的朋友更好的整理试题,减少一点重复枯燥的工作 …

SpringMVC前后端数据交互

一、JSON格式数据 1、定义 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,已被广泛用于数据保存和交换,是迄今为止最为理想的数据交换语言。 JSON 独立于编程语言 层次结构简洁和清晰 易于人阅读和编写,也易于…

【大数据学习 | Spark-Core】RDD的缓存(cache and checkpoint)

1. 单应用缓存:cache 1.1 cache算子 cache算子能够缓存中间结果数据到各个executor中,后续的任务如果需要这部分数据就可以直接使用避免大量的重复执行和运算。 rdd 存储级别中默认使用的算子cache算子,cache算子的底层调用的是persist算子…