kafka面试题(一)

news/2024/10/23 7:17:40/

1 kafka的ACK机制

Kafka 的 ACK(Acknowledgement)机制是指生产者在将消息发送到 Kafka 集群时,需要等待来自 Broker 的确认响应,以确保消息已经成功写入 Kafka。

Kafka 的 ACK 有三种模式:

  1. acks=0:不需要等待来自 Broker 的确认即可将消息视为已写入 Kafka,这种模式可用于不关心数据可靠性的场景。

  2. acks=1:只需要等待消息被写入到 Kafka 的 leader 节点并得到确认即可,此模式下生产者会收到来自 Broker 的确认响应。如果 leader 节点写入失败,则消息不会被写入到 Kafka,并且会重新尝试发送。

  3. acks=all/-1:需要等待所有副本都成功写入才可视为写入成功,此模式下会等待所有副本节点都写入后,才会向生产者发出确认响应。

2 kafka生产者写入partition的规则

  1. 如果 Producer 明确指定写入的 partition,消息将会被写入到指定 partition 中。

  2. 如果 Producer 没有明确指定 partition,但消息具有键值,那么 Kafka 会根据消息的键值对 partition 数量取模,从而得出写入的 partition。

  3. 如果 Producer 既没有指定 partition,也没有消息键值,则 Kafka 会采用 round-robin 的方式,轮流将消息写入每个 partition。

3 kafka的isr队列以及作用

在 Kafka 中,ISR(In-Sync Replica)队列是指某个 partition 所有与 leader 副本保持同步的副本集合。

ISR 队列的作用主要有以下几点:

  1. ISR 队列用于保证数据可靠性:当发送消息到 Kafka 时,Producer 将消息发送到 partition 的 leader 副本,并等待 ISR 队列中的 replica 同步完成后才会向 Producer 返回 ack 确认。这样可以确保数据被复制到足够数量的 replica 中,从而提高数据的可靠性和稳定性。

  2. ISR 队列用于防止数据丢失:当某个 replica 落后于 leader 副本时,Kafka 会将其移出 ISR 队列,并暂停向其推送数据,以避免数据丢失。如果该 replica 追上了 leader,并与其保持同步,则会重新加入 ISR 队列并继续接收数据。

  3. ISR 队列用于提高读取性能:Kafka 读取数据时,优先从 ISR 队列中的 replica 中读取数据。由于 ISR 队列中的 replica 已经同步了最新的数据,因此读取过程中可以避免长时间的等待和大量的网络传输,从而提高读取性能和效率。

4 kafka的选举机制

在 Kafka 集群中,每个 partition 都有一个 leader 和多个 follower。leader 负责处理读写请求,follower 负责复制 leader 的数据。当 leader 发生故障时,需要进行 leader 选举,以选择一个新的 leader 并继续提供服务。

Kafka 中的 leader 选举机制是基于 ZooKeeper 实现的,其大致步骤如下:

  1. 当某个 partition 的 leader 发生故障时,集群中的每个副本都会尝试向 ZooKeeper 申请成为该 partition 的新 leader。

  2. ZooKeeper 收到申请后,在一个称为“选举目录”的节点上创建一个 EPHEMERAL 类型的节点,表示该副本申请成为新的 leader,并在该节点中记录其 ID。

  3. 如果该节点被成功创建,则该副本成为该 partition 的临时 leader。它会将自己的元数据信息写入 ZooKeeper 中,然后开始接收和处理读写请求。

  4. 其他副本会从 ZooKeeper 中读取该 partition 的元数据信息,并与该临时 leader 进行通信同步数据。

  5. 当原 leader 恢复时,它会发现自己不再是该 partition 的 leader,此时它会变成该 partition 的 follower,并开始从新 leader 处复制数据。

  6. 如果在选举过程中存在多个副本同时申请成为 leader,ZooKeeper 会根据节点的编号选择一个副本作为该 partition 的新 leader。


http://www.ppmy.cn/news/555546.html

相关文章

全球首款搭载鸿蒙操作系统的设备是什么,全球首款搭载华为鸿蒙系统的智能空调首发上市!美的创造...

全球首款采用华为鸿蒙系统的智能空调来了!日前,美的空调正式对外宣布,首款搭载华为鸿蒙系统的智能空调中国尊鸿蒙艺术柜机,将于今年5月起上市销售,于今年空调旺季市场上掀起一轮全新的主动智能、新风无风感的智慧新体验…

美的:用创新助力国民品质提升

在国民对于舒适“家”需求日趋增加的窗口期,美的空调在电商策略及营销策略充分布局,推出中高端无风感系列产品,力求在空调使用场景中解决用户需求,满足用户对生活品质的提升的迫切期望。 针对用户对于空调的升级需求,美…

安卓平板修改和平精英90帧、120帧超广角,2k/4k分辨率(无需root!!!)

前言:今天我们将探讨如何在安卓平板上修改和平精英超广角以及高帧率画质效果。 1、首先,我们要知道平板改超广角的好处是什么?我们都知道平板相比于手机显示宽度是要更大的,如果平板再改个超广角效果,甚至连脚都可以看…

9招!解决空调总是报低压报警的问题

空调低压故障常见原因有: 1、空调制冷系统铜管管道过长。 2、空调室内机过滤网脏堵。 3、空调制冷系统中的干燥过滤器脏堵或者铜管管道油堵。 4、空调制冷系统中的低压保护器故障。 5、空调制冷系统中的电磁阀打不开。 6、空调制冷系统中的膨胀阀故障。 7、空调制冷…

【webpack】webpack探索

webpack是什么 构建工具 初始化 pnpm init -y生成一个package.json文件 为什么使用webpack 很难直观的去感受到你的某个文件依赖了哪些外部车或者其他组件如果一个依赖没有加上或者说顺序故错了,整个项目可能都步起来如果一个依赖已经装了但是没有用。试览器会…

Rust 原始类型之数组array内置方法

目录 数组 array 声明 访问 引用 Reference 切片 Slice 方法 题目实例 数组 array 在 Rust 中,数组是一种固定大小的数据结构,用于存储具有相同数据类型的元素的有序集合。 “固定大小”是指数组中的元素的类型和数量确定,也就确定了…

llt自发光_Luminox F-22猛禽战斗机9270飞行系列手表

Luminox 雷美诺时推出F-22猛禽战斗机9270 飞行系列手表.雷美诺时创立于1989年,首创Luminox Light Technology(LLT)光学技术,在不需电力及吸收外来光线的情况下能持续自我发光25年。于1993年,应美国海豹突击队(U.S. NAVY SEALs)需求设计出潜水…

llt自发光_Luminox 全新「SR-71 Blackbird」黑色限量版腕表

原标题:Luminox 全新「SR-71 Blackbird」黑色限量版腕表 据悉1976年7月28日,Blackbird创下了飞机史上最快飞行时速与最高飞行高度的双项纪录。时至今天,这两项纪录仍未被打破。今季 Luminox(鲁美诺斯)为纪念美国空军这枚最具代表性的战机&…