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

1-Kafka介绍及常见应用场景

Kafka 介绍

Apache Kafka 是一个开源的 分布式流处理平台,最初由 LinkedIn 开发,后捐赠给 Apache 软件基金会。它被设计用于高吞吐量、低延迟、可水平扩展地处理实时数据流。官网地址是:https://kafka.apache.org/

以下是 Kafka 的核心介绍:

核心概念

消息系统 (Messaging System)
Kafka 充当生产者和消费者之间的消息中间件,解耦系统,确保可靠的数据传递。

流处理平台 (Stream Processing)
支持实时处理数据流(如过滤、转换、聚合)。

存储系统 (Storage System)
数据可持久化存储(默认保留7天,可配置),支持故障恢复。

核心组件

组件作用
Producer 生产者向 Kafka 推送数据(如日志、事件)
Consumer 消费者从 Kafka 拉取数据并进行处理
Broker Kafka 服务器节点组成集群,负责存储和传递消息
Topic 逻辑消息分类(如 user_activity)生产者按 Topic 发送消息
Partition Topic 的分区(物理分片)实现并行处理和水平扩展。每个分区内消息有序
Replica 分区的副本(Leader 处理读写,Follower 同步数据)保障高可用
ZooKeeper管理集群元数据、Broker 状态和选举(Kafka 3.0+ 逐步移除依赖)

核心特性

  1. 超高吞吐量 & 低延迟

  • 吞吐量:单机每秒可处理 数十万条消息(轻松达百万级/秒),集群可扩展至 PB/天 级别。
  • 延迟:消息从生产到消费可控制在 毫秒级(通常 2~10ms)。
  • 技术支撑:
    ✅ 顺序磁盘 I/O(避免随机寻址)
    ✅ 零拷贝(Zero-Copy)技术减少内核态数据复制
    ✅ 批量压缩(Snappy、LZ4)
  1. 持久化存储与可靠性

  • 持久化:所有消息直接写入磁盘(非内存缓存),支持 TB 级数据保留(可配置保留策略)。
  • 高可靠:
    ✅ 副本机制(Replication):每个分区多副本存储(默认 3 副本)
    ✅ ISR(In-Sync Replicas) 机制保障数据一致性
    ✅ 生产者可配置 acks=all 确保数据写入所有副本后才确认
  1. 水平扩展能力

  • 无缝扩容:
    ✅ 通过增加 Broker 节点扩展集群容量
    ✅ 通过增加 Topic 分区数提升并行度
  • 负载均衡:分区自动均衡到集群所有节点,无需人工干预。
  1. 分布式架构与高容错

  • 去中心化:无单点瓶颈,Broker 节点对等。
  • 故障自愈:
    ✅ Leader 分区故障时,Follower 自动选举为新 Leader
    ✅ 消费者组自动重平衡(Rebalance)
    ✅ 数据副本保障节点宕机时 零数据丢失
  1. 多租户与生态整合

  • 多租户支持:通过认证(SASL/SSL)和配额(Quotas)实现资源隔离。
  • 丰富生态:
    ✅ Kafka Connect:快速集成数据库、ES、S3 等外部系统
    ✅ Kafka Streams:轻量级流处理库(无需额外集群)
    ✅ Schema Registry:统一管理 Avro/Protobuf 消息格式
  1. 消费者组模型灵活性

  • 发布/订阅 & 队列模式:
    ✅ 广播模式:多个消费者组独立消费全量数据
    ✅ 队列模式:同组内消费者分区负载均衡(每条消息仅被组内一个消费者处理)
  • 位移管理:消费者可手动/自动提交消费进度(Offset),支持重播历史数据。
  1. 精准一次语义(Exactly-Once Semantics, EOS)

  • 跨系统一致性:通过 Kafka Streams API 或 事务型生产者(idempotence=true + 事务)实现:
    ✅ 生产端:避免消息重复写入
    ✅ 消费端:确保“处理 + 提交 Offset”原子性

典型应用场景

  1. 实时数据管道
    将数据从源系统(数据库、日志)同步到数据仓库(如 Hadoop、Snowflake)。

  2. 事件驱动架构
    微服务间通过事件通信(如订单支付触发库存更新)。

  3. 日志聚合
    集中收集分布式系统的日志(替代 ELK 中的 Logstash)。

  4. 实时流处理
    结合 Kafka Streams 或 Flink 实时分析用户行为、监控指标。

  5. 消息队列
    替代传统 MQ(如 RabbitMQ),尤其适用于大数据量场景。

版本与生态

主流版本:Kafka 3.x(已移除 ZooKeeper 依赖,使用 KRaft 共识协议)。

与其他消息队列的对比优势

特性KafkaRabbitMQ / RocketMQ
吞吐量⭐⭐⭐⭐⭐ (百万级/秒)⭐⭐ (万级/秒)
数据持久化⭐⭐⭐⭐⭐ (磁盘存储 + 多副本)⭐⭐ (内存为主,持久化性能低)
水平扩展⭐⭐⭐⭐⭐ (分区 + Broker 动态扩展)⭐⭐ (集群扩展复杂)
消息回溯⭐⭐⭐⭐⭐ (支持任意时间点重消费)⭐ (需手动备份)
流处理能力⭐⭐⭐⭐ (原生 Kafka Streams 支持)❌ (需额外工具)

参考:
deepseek
B站项桦瑾Kafka介绍

http://www.dtcms.com/a/268610.html

相关文章:

  • 学习基于springboot秒杀系统-环境配置(接口封装,mybatis,mysql,redis(Linux))
  • 2025年全国青少年信息素养大赛图形化(Scratch)编程小学低年级组初赛样题答案+解析
  • 登山第二十六梯:单目3D检测一切——一只眼看世界
  • 【C++开源库使用】使用libcurl开源库发送url请求(http请求)去下载用户头像文件(附完整源码)
  • 【R语言】 在读取 CSV 或 Excel 文件时的标准输出
  • 自定义简单线性回归模型
  • 【AI大模型】神经网络反向传播:核心原理与完整实现
  • 电脑电压过高的影响与风险分析
  • 轨迹优化 | 基于激光雷达的欧氏距离场ESDF地图构建(附ROS C++仿真)
  • 回溯题解——子集【LeetCode】二进制枚举法
  • ssh: Could not resolve hostname d: Temporary failure in name resolution
  • 从依赖地狱到依赖天堂PNPM
  • 01、通过内网穿透工具把家中闲置电脑变成在线服务器
  • C盘瘦身 -- 虚拟内存文件 pagefile.sys
  • (六)PS识别:源数据分析- 挖掘图像的 “元语言”技术实现
  • python list去重
  • 【Behavior Tree】-- 行为树AI逻辑实现- Unity 游戏引擎实现
  • Docker 将镜像打成压缩包将压缩包传到服务器运行
  • 物联网技术的关键技术与区块链发展趋势的深度融合分析
  • Java SE与Java EE使用方法及组件封装指南
  • 安卓10.0系统修改定制化_____安卓9与安卓10系统文件差异 有关定制选项修改差异
  • Java 并发编程中的同步工具类全面解析
  • qiankun隔离机制
  • [附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的高校实验室资源综合管理系统,推荐!
  • 按键开关:新型防水按键开关的特点!
  • 音频流媒体技术选型指南:从PCM到Opus的实战经验
  • 【Java面试】Https和Http的区别?以及分别的原理是什么?
  • 02 除了前面常见图表,还有许多更细分或专业的可视化类型,尤其是在特定领域(如金融、工程、生物信息等)。
  • GaussDB应用场景全景解析:从金融核心到物联网的分布式数据库实践
  • OpenCV 人脸分析----人脸识别的一个经典类cv::face::EigenFaceRecognizer