当前位置: 首页 > article >正文

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

文章目录

    • 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 是如何做到消息的有序性?【面试重点】

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

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.kler.cn/a/414821.html

相关文章:

  • 机器学习5-多元线性回归
  • Pod 动态分配存储空间实现持久化存储
  • List集合的进一步学习:性能优化
  • 【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)
  • Js-对象-04-Array
  • Elasticsearch与CCS跨集群搜索:深入讲解与实战演练
  • Navicat 预览变更sql
  • AI潮汐日报1128期:Sora泄露引发争议、百度早期研究对AI领域Scaling Law的贡献、Meta发布系列AI开源项目
  • 【linux014】文件操作命令篇 - head 命令
  • 镜舟科技积极参与北京市开源项目产融对接会,共谋开源新未来
  • HarmonyOS(60)性能优化之状态管理最佳实践
  • 【ArcGIS Pro实操第11期】经纬度数据转化成平面坐标数据
  • 深度学习作业九 RNN-SRN-Seq2Seq
  • 服务器数据恢复—raid5阵列+LVM+VXFS数据恢复案例
  • 英语知识网站开发:Spring Boot框架应用
  • 行为型模式-迭代器模式
  • 【高等数学学习记录】微分中值定理
  • 网络传输介质
  • 怎么样才算得上熟悉高并发编程?
  • vue3【实战】自定义全局指令(含批量自动注册全局自定义指令,复制,防抖,节流,长按,水印,拖拽,打字机特效等)
  • git常用命令和问题
  • C++的依赖颠倒原则
  • C++ 【异步日志模块和std::cout << 一样使用习惯替代性好】 使用示例,后续加上远程日志
  • ABAP 快速入门之 Hello World 和 ALV 列表
  • 深度学习基本单元结构与输入输出维度解析
  • C语言根据字符串变量获取/设置结构体成员值