Kafka的基本组件有哪些?

Kafka的基本组件主要有:

1. Broker

Kafka集群中的节点,充当分布式系统中的服务节点,每个Broker可以运行多个Topic。

Broker具有以下功能:

  • 接受Producer的发布请求
  • 持久化发布的消息到磁盘上
  • 服务于Consumer的订阅请求,返回对应的消息记录

2. Topic

分类 brokers 中存储的消息,相当于一个分区树。每个 topic 包含一个或多个 partition。

3. Partition

将Topic按key进行水平分割,对同一个partition中的所有消息分配一个单独的线程从而保证顺序。
每一个 partition 被分配到一个 broker 节点。

4. Producer

产生消息并且向一个或多个 kafka brokers 发送这些消息。

5. Consumer

从Kafka集群订阅消息,Consumer 组内各个实例之间划分partition,每个实例负责读取自己分配到的 partition 中的消息。

6. Consumer Group

每个消费者都是属于一个或多个group的。group内的所有consumer会 equally 分配 topic 下面的所有分区。

7. Replica

每个partition 可以有多个备份(replica),保证了容错性和可用性。

8. Zookeeper

为Kafka提供协调服务,维护整个集群的相关信息,如存储 Topic 和 Partition 的元数据、Broker节点的注册与发现等。

以上是Kafka主要组件的概述:

  • Broker
  • Topic
  • Partition
  • Producer
  • Consumer
  • Consumer Group
  • Replica
  • Zookeeper

这些组件在Kafka集群中协同工作,提供高吞吐、低延迟的分布式发布订阅消息系统。