当前位置: 首页 > 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://www.lqws.cn/news/88057.html

相关文章:

  • Flink 重启后事件被重复消费的原因与解决方案
  • Kafka 的优势是什么?
  • 云原生时代 Kafka 深度实践:06原理剖析与源码解读
  • AI“实体化”革命:具身智能如何重构体育、工业与未来生活
  • 三、kafka消费的全流程
  • # [特殊字符] Unity UI 性能优化终极指南 — LayoutGroup篇
  • Kafka 和Redis 在系统架构中的位置
  • 【ISAQB大纲解读】Kafka消息总线被视为“自下而上设计”?
  • 云原生时代 Kafka 深度实践:05性能调优与场景实战
  • 打卡第35天:GPU训练以及类的Call方法
  • 使用Composer创建公共类库
  • 工厂模式与多态结合
  • Rhino插件大全下载指南:解锁犀牛潜能,提升设计效率
  • llama.cpp:纯 C/C++ 实现的大语言模型推理引擎详解一
  • Spring AOP:面向切面编程 详解代理模式
  • JavaSec | SpringAOP 链学习分析
  • 【 java 集合知识 第一篇 】
  • 网络攻防技术七:计算机木马
  • git管理
  • Linux 环境下高效视频切帧的实用指南
  • ES6 Promise 状态机
  • 在linux系统上搭建git服务器(ssh协议)
  • k8s的出现解决了java并发编程胡问题了
  • sudo docker exec -it backend bash 以交互方式(interactive)进入正在运行的 Docker 容器的命令行环境
  • 【leetcode】20. 有效的括号
  • 代码训练LeetCode(19)轮转数组
  • Axure-元件流程图
  • python,shell,linux,bash概念的不同和对比联系
  • 运行shell脚本时报错/bin/bash^M: 解释器错误: 没有那个文件或目录
  • 当 “欧洲版 Cursor” 遇上安全危机