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

kafka的架构和工作原理

目录

Kafka 架构

Kafka 工作原理

Kafka 数据流

Kafka 核心特性

总结

Kafka 架构

1. 生产者(Producer)

2. 消费者(Consumer)

3. 主题(Topic)

4. 分区(Partition)

5. 副本(Replica)

6. 代理(Broker)

7. ZooKeeper(旧版本)/KRaft(新版本)

Kafka 工作原理

1. 消息生产

2. 消息存储

3. 消息消费

4. 领导者选举

5. 集群协调


Kafka 架构

Kafka 是一个分布式流处理平台,核心架构包括以下组件:

  1. Producer(生产者)

    • 负责将消息发布到 Kafka 的 Topic 中。

  2. Consumer(消费者)

    • 从 Topic 订阅并消费消息。

  3. Broker(服务器)

    • Kafka 集群中的每个节点都是一个 Broker,负责消息的存储和转发。

  4. Topic(主题)

    • 消息的逻辑分类,生产者将消息发送到特定 Topic,消费者从 Topic 订阅消息。

  5. Partition(分区)

    • 每个 Topic 可以分为多个 Partition,分区是 Kafka 并行处理的基本单位,每个分区是一个有序、不可变的消息序列。

  6. Replica(副本)

    • 每个 Partition 可以有多个副本,分布在不同的 Broker 上,确保数据的高可用性和容错性。

  7. Leader 和 Follower

    • 每个 Partition 有一个 Leader 副本和多个 Follower 副本,Leader 负责处理读写请求,Follower 从 Leader 同步数据。

  8. Zookeeper

    • 用于管理 Kafka 集群的元数据、Broker 状态、Leader 选举等。


Kafka 工作原理

  1. 消息发布

    • Producer 将消息发送到指定的 Topic,消息根据分区策略(如轮询、哈希等)分配到某个 Partition。

  2. 消息存储

    • 消息以追加(Append)的方式写入 Partition 的日志文件(Log Segment),Kafka 不会修改或删除已写入的消息。

  3. 消息复制

    • Leader Partition 将消息复制到所有 Follower Partition,确保数据冗余和高可用性。

  4. 消息消费

    • Consumer 从 Partition 拉取消息,每个 Consumer 属于一个 Consumer Group,组内的 Consumer 共同消费一个 Topic 的消息,每个 Partition 只能被组内的一个 Consumer 消费。

  5. Offset 管理

    • Consumer 通过 Offset 记录消费进度,Kafka 将 Offset 存储在内部 Topic(__consumer_offsets)中,确保消费状态可恢复。

  6. 日志清理

    • Kafka 提供两种日志清理策略:

      • 日志删除(Log Retention):根据时间或大小删除旧数据。

      • 日志压缩(Log Compaction):保留每个 Key 的最新值,适用于 Key-Value 场景。

  7. 高可用性

    • 通过副本机制和 Leader 选举实现高可用性。如果 Leader 失效,Zookeeper 会从 ISR(In-Sync Repl

相关文章:

  • 在Mac arm架构终端中运行 corepack enable yarn 命令,安装yarn
  • 25、深度学习-自学之路-卷积神经网络基于MNIST数据集的程序展示
  • 14.1 Auto-GPT 项目定位与价值解读:揭开自主智能体的神秘面纱
  • 商品按图搜索拍立淘API接口系列概述
  • matplotlib中pyplot的基本使用
  • jvm 线程监控调试
  • Qt的isVisible ()函数介绍和判断窗口是否在当前界面显示
  • 理解 package.json :在基于 TypeScript 开发 Babylon.js 项目中的关键角色
  • DeepSeek底层揭秘——知识图谱与语料库的联邦学习架构
  • 今日AI和商界事件(2025-02-13)
  • 实现pytorch注意力机制-one demo
  • 业务干挂数据库,Oracle内存分配不足
  • css:position
  • K8s之存储卷
  • Prompt通用技巧
  • redis sentinel模式 与 redis 分片集群 配置
  • (五)Spring Boot学习——spring security +jwt使用(前后端分离模式)
  • iOS实现生物识别
  • git: 如何查询某个文件或者某个目录的更新历史
  • 服务器之连接简介(Detailed Explanation of Server Connection)
  • 顺德网站建设找顺的/影响关键词优化的因素
  • 今天重大新闻头条新闻国际新闻/西安百度seo排名
  • 贵州毕节建设局网站官网/网站查询域名ip
  • 做外贸英语网站/搜索引擎优化报告
  • 自适应网站做多大尺寸的/网站友情链接怎么添加
  • 泰州seo网络推广/专业搜索引擎seo服务商