Kafka的主要架构组件有哪些?

Kafka 的主要架构组件有:

  1. Broker:负责消息的接收、存储和发布,一个集群有多个Broker组成。
  2. Topic:消息类别的逻辑概念,由用户定义。每个Topic有一个或多个分区。
  3. Partition:物理上的消息分组,每个分区对应一个日志文件。分区属于特定的主题。
  4. Producer:负责发布消息到Kafka集群的客户端或应用程序。
  5. Consumer:负责订阅和消费来自Kafka集群消息的客户端或应用程序。
  6. Consumer Group:由多个Consumer组成,消费同一个主题并共享分区的消费进度信息。
  7. Offsets:每个分区都有一个独立的偏移量,用来标记消息的消费位置。
  8. Zookeeper:负责存储集群配置信息及主题、分区的元数据。还协调 Kafka 集群的工作。

例如,一个集群有3个Broker,一个主题有2个分区。生产者发布消息到topic,其中一个分区的消息由Broker 1存储,另一个分区的消息由Broker 2存储。

例如,一个消费者群组有3个消费者,订阅主题的所有分区。其中一个消费者消费主题分区0中的消息,另外两个消费者均消费主题分区1中的消息。

理解 Kafka 的架构组件及其工作关系,是使用和管理 Kafka 的基础。