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

kafaka知识要点

Kafka 核心概念

Kafka 是一个分布式流处理平台,核心概念包括生产者(Producer)、消费者(Consumer)、主题(Topic)、分区(Partition)和 Broker。生产者将消息发布到主题,消费者从主题订阅消息。分区是主题的物理分片,每个分区是一个有序、不可变的消息队列。Broker 是 Kafka 集群中的服务器节点。

分区与副本机制

分区通过水平扩展提高吞吐量,每个分区可以分配到不同的 Broker。副本机制保证数据高可用,每个分区有一个 Leader 副本和多个 Follower 副本。Leader 处理读写请求,Follower 同步 Leader 数据。ISR(In-Sync Replicas)是保持同步的副本集合,只有 ISR 中的副本有资格成为 Leader。

消息存储与清理

Kafka 使用顺序 I/O 和日志分段存储消息,每个分段对应一个文件。消息通过偏移量(Offset)定位,消费者可以重置偏移量重新消费。日志清理策略分为删除(Delete)和压缩(Compact),删除策略基于时间或大小,压缩策略保留每个键的最新值。

生产者与消费者

生产者通过异步或同步方式发送消息,支持消息确认机制(acks=0/1/all)。消费者通过消费者组(Consumer Group)实现负载均衡,每个分区只能被组内一个消费者消费。消费者提交偏移量到 Kafka 或外部存储(如数据库)。

消息的可靠性保证

       生产者:确认机制、持久化机制、失败重试、死信队列

       消费者:确认机制、持久化机制、失败重试

      broke:持久化、幂等性、副本机制、确认机制、事务消息

高可用与性能优化

Kafka 通过多副本和 Leader 选举实现高可用,Zookeeper 用于协调选举和存储元数据。性能优化包括调整批处理大小、压缩算法、分区数量和副本分布。监控指标包括延迟、吞吐量和 ISR 状态。

常见问题与解决方案

消息重复消费问题可以通过幂等生产者或消费者去重解决。消息顺序性通过单分区或业务逻辑保证。数据丢失问题通过合理设置 acks 和副本数量避免。Kafka 集群扩容需要重新分配分区,避免热点问题。

Kafka 与其他技术对比

Kafka 与 RabbitMQ 对比,Kafka 适合高吞吐量场景,RabbitMQ 适合复杂路由和低延迟场景。Kafka 与 RocketMQ 对比,RocketMQ 支持事务消息和延迟消息,Kafka 生态更丰富。Kafka Streams 和 Flink 对比,Flink 提供更复杂的流处理能力。

实际应用场景

Kafka 常用于日志收集、实时数据处理、事件溯源和消息队列。案例包括电商订单流水、用户行为分析和系统监控。设计 Kafka 系统时需要考虑消息大小、吞吐量、延迟和容错需求。

http://www.xdnf.cn/news/1353367.html

相关文章:

  • VLOOKUP专题训练
  • UE C++ 堆化
  • windows中bat脚本的一些操作(三)
  • 算法第五十五天:图论part05(第十一章)
  • 图论与最短路学习笔记
  • 【数据结构】跳表的概率模型详解与其 C 代码实现
  • 深度学习开篇
  • `strlen` 字符串长度函数
  • python 字典有序性的实现和OrderedDict
  • 计算机网络 各版本TLS握手的详细过程
  • 电脑零广告快响应提速(一)之卸载搜狗输入法使用RIME—东方仙盟
  • python re模块常用方法
  • MySQL详细介绍指南
  • 蓝牙aoa仓库管理系统功能介绍
  • [e3nn] 归一化 | BatchNorm normalize2mom
  • 【技术突破】动态目标误检率↓83.5%!陌讯多模态融合算法在智慧城管的实战优化
  • 基于电力电子变压器的高压脉冲电源方案复现
  • 使用 Certbot 申请 Apache 证书配置棘手问题
  • 【数据结构】计数排序:有时比快排还快的整数排序法
  • Ubuntu 操作系统深度解析:从入门到精通(2025 最新版)
  • Java JVM 超级详细指南
  • 在Linux环境中为Jupyter Lab安装Node.js环境
  • 云计算之云主机Linux是什么?有何配置?如何选?
  • JavaSpring+mybatis+Lombok,实现java架构[保姆教程]
  • Linux PCI 子系统:工作原理与实现机制深度分析
  • Bartender 5 Mac 多功能菜单栏管理
  • 【LeetCode】85. 最大矩形 (暴力枚举)
  • 嵌入式软件/硬件工程师面试题集
  • MySql知识梳理之DDL语句
  • 力扣hot100:搜索二维矩阵与在排序数组中查找元素的第一个和最后一个位置(74,34)