常用工具: kafka,redis

发布于:2025-03-15 ⋅ 阅读:(70) ⋅ 点赞:(0)

kafka

Apache Kafka 是一个分布式流处理平台,主要用于构建实时数据管道和流应用程序。它具有高吞吐量、低延迟、可扩展性和持久性等特点,广泛应用于日志收集、消息系统、事件溯源、流处理等场景。

以下是 Kafka 的基础知识: 

1. Kafka 的核心概念

1.1 Topic(主题)
  • Topic 是 Kafka 中数据存储的逻辑分类,类似于数据库中的表。

  • 生产者将消息发布到特定的 Topic,消费者从 Topic 订阅并消费消息。

  • 一个 Kafka 集群可以有多个 Topic。 

1.2 Partition(分区)
  • 每个 Topic 可以分为多个 Partition,分区是 Kafka 实现高吞吐量和并行处理的基础。

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

  • 分区允许 Topic 的数据分布在多个服务器上,从而实现水平扩展。

1.3 Producer(生产者)
  • Producer 是向 Kafka Topic 发布消息的客户端。

  • 生产者可以将消息发送到指定的 Topic 和 Partition。

1.4 Consumer(消费者)
  • Consumer 是从 Kafka Topic 订阅并消费消息的客户端。

  • 消费者可以以组(Consumer Group)的形式工作,组内的消费者共同消费一个 Topic 的消息,实现负载均衡。

1.5 Broker(代理)
  • Broker 是 Kafka 集群中的单个服务器节点。

  • 每个 Broker 负责存储和管理一个或多个 Partition。

  • 多个 Broker 组成一个 Kafka 集群。

1.6 Offset(偏移量)
  • Offset 是消息在 Partition 中的唯一标识,表示消息的位置。

  • 消费者通过维护 Offset 来记录自己消费到的位置。

1.7 Consumer Group(消费者组)
  • Consumer Group 是一组消费者的集合,共同消费一个 Topic 的消息。

  • Kafka 会将 Topic 的 Partition 分配给组内的消费者,确保每条消息只被组内的一个消费者消费。

1.8 Replication(副本)
  • Kafka 通过 Replication 实现数据的高可用性。

  • 每个 Partition 可以有多个副本,其中一个副本是 Leader,负责处理读写请求,其他副本是 Follower,用于数据备份。

2. Kafka 的架构

2.1 生产者-消费者模型
  • 生产者将消息发布到 Kafka Topic。

  • 消费者从 Topic 订阅并消费消息。

2.2 分布式存储
  • Kafka 的数据分布在多个 Broker 上,每个 Broker 存储一部分 Partition。

  • 通过分区和副本机制,Kafka 实现了高可用性和负载均衡。

2.3 ZooKeeper 的作用
  • Kafka 依赖 ZooKeeper 来管理集群元数据、Broker 状态、消费者 Offset 等。

  • 从 Kafka 2.8.0 开始,Kafka 引入了 KRaft 模式,可以不再依赖 ZooKeeper。