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

相关文章:

  • CAIDCP AI驱动安全专家认证将于8月正式上线,首期班开始报名
  • c++-引用(包括完美转发,移动构造,万能引用)
  • Qt中的坐标系
  • 算法————模拟算法
  • 机房运维篇(添加备份盘)加备份
  • mac中有多个java版本涉及到brew安装中,怎么切换不同版本
  • Playwright vs TestCafe 对象注入机制详解对比
  • Redis Tag 字段详解与最佳实践
  • 可扩展 Redis 查询引擎的最佳实践
  • 人工智能-基础篇-22-什么是智能体Agent?(具备主动执行和调优的人工智能产物)
  • DejaOS常见问题
  • (4)ROS2:moveit2的几个坑
  • 多通道采发仪VS系列 智能监测终端 工业级采发仪精准守护隧道边坡、水利大坝
  • 【Echarts】“折线+柱状”实现双图表-家庭用电量可视化【文章附完整代码】
  • 【SigNoz部署安装】Ubuntu环境部署SigNoz:Docker容器化监控的全流程指南
  • 御控网关如何实现MQTT、MODBUS、OPCUA、SQL、HTTP之间协议转换
  • HTTP 重定向
  • Camera相机人脸识别系列专题分析之十六:人脸特征检测FFD算法之libcvface_api.so数据结构详细注释解析
  • C++ -- string类的模拟实现
  • Day07- 管理并发和并行挑战:竞争条件和死锁
  • 【AI大模型入门指南】机器学习入门详解
  • 烟雾,火焰探测器
  • Linux操作系统:软硬链接与动静态库
  • ClickHouse介绍与应用
  • 迁移GitLab,在新Linux中用Docker重新部署GitLab备份还原
  • C#中的BindingList有什么作用?
  • 【机器学习深度学习】多分类评估策略:混淆矩阵计算场景模拟示例
  • 亚马逊运营进阶指南:如何用AI工具赋能广告运营
  • 诊断工程师进阶篇 --- 车载诊断怎么与时俱进?
  • English Practice - Day 2