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

大数据学习(100)-kafka详解

🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


        Apache Kafka 是一个 分布式流处理平台,主要用于构建 高吞吐量、低延迟、可扩展 的实时数据管道和流式应用程序。它广泛应用于日志聚合、事件溯源、消息队列、实时分析等场景。

Kafka 核心概念

1. Producer(生产者)

向 Kafka 发布(写入) 消息的客户端。

可以指定消息发送到哪个 Topic(主题) 和 Partition(分区)

2. Consumer(消费者)

从 Kafka 订阅(读取) 消息的客户端。

消费者可以组成 Consumer Group(消费者组),实现负载均衡。

3. Broker(代理服务器)

Kafka 集群中的单个服务器节点。

负责存储消息、处理生产者和消费者的请求。

4. Topic(主题)

消息的分类(类似数据库中的表)。

一个 Topic 可以分成多个 Partition(分区),提高并行处理能力。

5. Partition(分区)

Topic 的物理存储单元,分布在不同的 Broker 上。

每个 Partition 是一个 有序、不可变 的消息队列。

消息在 Partition 内按 Offset(偏移量) 索引。

6. Replication(副本)

每个 Partition 可以有多个副本(Leader + Followers),提高容错能力。

Leader 处理读写请求,Followers 同步数据。

7. Consumer Group(消费者组)

多个消费者可以组成一个组,共同消费一个 Topic。

每个 Partition 只能被组内的 一个消费者 消费,实现负载均衡。

Kafka 核心特性

✅ 高吞吐量

  • 支持每秒百万级消息处理(取决于硬件和配置)。

  • 采用 顺序 I/O 和 零拷贝(Zero-Copy) 技术优化性能。

✅ 持久化存储

  • 消息默认持久化到磁盘(可配置保留时间)。

  • 支持 日志压缩(Log Compaction),只保留最新 Key 的消息。

✅ 水平扩展

  • 可以通过增加 Broker 和 Partition 来扩展集群。

  • 支持动态扩容。

✅ 容错性

  • 通过 副本(Replication) 机制保证数据不丢失。

  • 如果 Leader 宕机,Follower 会自动接管。

✅ 流处理支持

  • 可与 Kafka StreamsFlinkSpark Streaming 等流处理框架集成。

Kafka 使用场景

        消息队列(MQ):解耦生产者和消费者,异步处理任务。

        日志收集:集中存储和分析应用日志(如 ELK 架构)。

        实时数据处理:结合 Flink/Spark 进行实时计算。

        事件溯源(Event Sourcing):记录系统状态变化。

        Metrics & Monitoring:传输监控数据(如 Prometheus + Kafka)。

Kafka vs 传统消息队列(RabbitMQ)

特性KafkaRabbitMQ
吞吐量极高(百万级/秒)中等(万级/秒)
延迟低(毫秒级)极低(微秒级)
持久化默认持久化可选
消费模式基于 Pull(消费者主动拉取)基于 Push(Broker 推送)
适用场景大数据流处理、日志任务队列、RPC

相关文章:

  • linux安装ollama
  • 【湖南大学】2025我们该如何看待DeepSeek
  • 【KNN算法详解(用法,优缺点,适用场景)及应用】-CSDN博客
  • 基于springboot体育俱乐部预约管理系统(源码+lw+部署文档+讲解),源码可白嫖!
  • C++的多态 - 下
  • 架构思维: 数据一致性的两种场景深度解读
  • MySQL SQL 优化的10个关键方向
  • 时间复杂度和空间复杂度
  • JGraphT 在 Spring Boot 中的应用实践
  • JavaScript之Json数据格式
  • git 本地创建了版本 怎么推送到远端
  • 代理模式的优缺点是什么?
  • SpringMVC的简单介绍
  • JAVA刷题记录: 专题四 前缀和
  • Swift 解 LeetCode 250:搞懂同值子树,用递归写出权限系统检查器
  • 什么是大型语言模型(LLM)?哪个大模型更好用?
  • 力扣316去除重复字母-单调栈
  • python 3.9 随机生成 以UTF-8 编码 的随机中文
  • 基于大模型的GCSE预测与治疗优化系统技术方案
  • Ubuntu中MATLAB启动图标设置
  • 用php做购物网站案例/凡科建站代理
  • 网站改版专题页/互联网推广销售是做什么的
  • 网站更换服务器要重新备案吗/旅游网络营销的渠道有哪些
  • 淘宝客做网站怎么做/百度竞价登陆
  • 设计网站推广公司网页制作/微信营销平台有哪些
  • 外贸网站做排名/网络推广优化招聘