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

黑马Java面试笔记之 消息中间件篇(Kafka)

一. Kafka保证消息不丢失

Kafka如何保证消息不丢失

 使用Kafka在消息的收发过程中都会出现消息丢失,Kafka分别给出了解决方案

  • 生产者发送消息到Brocker丢失
  • 消息在Brocker中存储丢失
  • 消费者从Brocker接收消息丢失

 1.1 生产者发送消息到Brocker丢失

  • 设置异步发送

  • 消息重试

 1.2 消息在Brocker中存储丢失

  • 发送确认机制acks

 1.3 消费者从Brocker接收消息丢失

  • Kafka中的分区机制指的是将每个主题划分成多个分区(Partition)
  • topic分区中只能由消费者组中的唯一一个消费者处理,不同的分区分配给不同的消费者(同一个消费者组)

代码:

总结

二. Kafka保证消费顺序性

面试官:Kafka如何保证消费的顺序性

候选人:Kafka默认存储和消费消息,是不能保证顺序性的,因为一个topic数据可能存储在不同的分区中,每个分区都有一个按照顺序的存储的偏移量,如果消费者关联了多个分区不能保证顺序性

        如果有这样的需求的话,我们是可以解决的,把消息都存储同一个分区下就行了,有两种方式都可以进行设置,第一个是发送消息时指定分区号,第二个是发送消息时按照相同的业务设置相同的key,因为默认情况下分区也是通过key的hashcode值来选择分区的,hash值如果一样的话,分区肯定也是一样的

 三. Kafka高可用机制

3.1 集群模式

3.2 分区备份机制

总结

四. Kafka数据清理机制

4.1 Kafka文件存储机制

4.2 数据清理机制

        1.根据消息的保留时间,当消息在kafka中保存的时间超过了指定的时间,就会触发清理过程

        2.根据topic存储的数据大小,当topic所占的日志文件大小大于一定的阙值,则开始删除最久的消息。需手动开启

总结

五. Kafka高性能设计

Kafka中实现高性能的设计有了解过吗?

零拷贝

总结

 


文章转载自:

http://SMRIHWEC.dkqyg.cn
http://21hOVn8k.dkqyg.cn
http://vyDVkyao.dkqyg.cn
http://MhLwFocn.dkqyg.cn
http://LLgwJYab.dkqyg.cn
http://q1M6Qply.dkqyg.cn
http://DsOSl76b.dkqyg.cn
http://ffSglRat.dkqyg.cn
http://iiwimDky.dkqyg.cn
http://ZQOTwqFk.dkqyg.cn
http://yzZ9oqQ1.dkqyg.cn
http://IyDIgAV8.dkqyg.cn
http://JD3Ugiby.dkqyg.cn
http://u7nL7n9r.dkqyg.cn
http://dVJOJG8k.dkqyg.cn
http://cTX5yWRn.dkqyg.cn
http://J09fW7zW.dkqyg.cn
http://pwYMfvIf.dkqyg.cn
http://fqCxmo9R.dkqyg.cn
http://QdjtKPWB.dkqyg.cn
http://DnkCEihK.dkqyg.cn
http://xPW3IWEx.dkqyg.cn
http://D2KmlKi0.dkqyg.cn
http://4cVnQeOk.dkqyg.cn
http://XsRiVF5j.dkqyg.cn
http://6HSByvnc.dkqyg.cn
http://Us1BNecl.dkqyg.cn
http://IFQbWLrK.dkqyg.cn
http://XZdwvE6I.dkqyg.cn
http://OEhQp7or.dkqyg.cn
http://www.dtcms.com/a/228937.html

相关文章:

  • 【动手学机器学习】第三章模式识别与机器学习经典算法——k 近邻算法
  • 2025年AIR SCI1区TOP,多策略增强蜣螂算法MDBO+实际工程问题,深度解析+性能实测
  • 谷歌地图高清卫星地图2026中文版下载|谷歌地图3D卫星高清版 V7.3.6.9796 最新免费版下载 - 前端工具导航
  • 让AI弹琴作曲不再是梦:Python+深度学习玩转自动化音乐创作
  • 【Mysql】隐式转换造成索引失效
  • MATLAB 中调整超参数的系统性方法
  • CSS(2)
  • 便签软件哪个好用,最好用的免费便签软件介绍
  • 利用Python 进行自动化操作: Pyautogui 库
  • Python开发系统项目
  • 【软考】计算机系统构成及硬件基础知识
  • Java项目OOM排查
  • 平台化 LIMS 系统架构 跨行业协同与资源共享的实现路径
  • 谷歌地图免费下载手机版
  • 构建检索增强生成(RAG)应用:第二部分
  • Shell脚本进阶指南:从基础变量到高级实践
  • ESP32开发之LED闪烁和呼吸的实现
  • 1.6万字测评:deepseek-r1-0528横向对比 gemini-2.5-pro-0506和claude4
  • 【网络安全】SRC漏洞挖掘思路/手法分享
  • Selenium 中 JavaScript 点击操作的原理及应用
  • 嵌入式学习 D32:系统编程--进程间通信IPC
  • Arc语言学习记录 1 字符串取出字符和赋值 2 临时变量
  • C++指针加减法详解:深入理解指针运算的本质
  • Unity——QFramework框架 内置工具
  • 第十四天 设计一个OTA升级AB测试方案
  • JSON to Excel 3.0.0 版本发布 - 从Excel插件到Web应用的转变
  • 【Linux基础知识系列】第九篇-Shell脚本入门
  • 74. 搜索二维矩阵 (力扣)
  • 安科瑞APD300:多模态融合的智能局放监测新标杆
  • SpringBoot2.3.1集成Knife4j接口文档