Kafka 的主要架构组件有:
- Broker:负责消息的接收、存储和发布,一个集群有多个Broker组成。
- Topic:消息类别的逻辑概念,由用户定义。每个Topic有一个或多个分区。
- Partition:物理上的消息分组,每个分区对应一个日志文件。分区属于特定的主题。
- Producer:负责发布消息到Kafka集群的客户端或应用程序。
- Consumer:负责订阅和消费来自Kafka集群消息的客户端或应用程序。
- Consumer Group:由多个Consumer组成,消费同一个主题并共享分区的消费进度信息。
- Offsets:每个分区都有一个独立的偏移量,用来标记消息的消费位置。
- Zookeeper:负责存储集群配置信息及主题、分区的元数据。还协调 Kafka 集群的工作。
例如,一个集群有3个Broker,一个主题有2个分区。生产者发布消息到topic,其中一个分区的消息由Broker 1存储,另一个分区的消息由Broker 2存储。
例如,一个消费者群组有3个消费者,订阅主题的所有分区。其中一个消费者消费主题分区0中的消息,另外两个消费者均消费主题分区1中的消息。
理解 Kafka 的架构组件及其工作关系,是使用和管理 Kafka 的基础。