Kafka概述

主题和分区

kafka通过主题对消息分类。
kafka通过分区实现数据冗余和伸缩性。
一个主题包含多个分区,所以在topic内消息可能是无需的,但是在单个partition内部是有序的。
Kafka概述

生产者和消费者

生产者创建消息,发布到一个特定的主题上,消息会均衡在所有分区上。
消费者订阅一个或者多个主题,按照生产顺序消费消息。
偏移量是一种元数据,是一个不断递增的整数值,消费者通过偏移量来区分已经消费的消息。每个分区有唯一的偏移量,消费者把最后消费的消息的偏移量发送到broker或者zookeeper保存。
消费者群组多个消费者共同读取一个主题,有唯一的groupId,群组保证,每个分区只能被一个消费者使用。
Kafka概述

broker和集群

broker是一个独立的kafka 服务器。负责接收生产者的消息,为消息设置偏移量,提交消息到磁盘保存。是集群的组成部分。
集群控制器是集群中的一个broker。负责分区分配和broker监控。
分区首领。一个分区会分配给多个broker,这种复制机制是为了提供消息冗余。在这多个broker中需要有一个分区首领,消费者只消费分区首领的消息,分区首领负责把消费的offset同步到冗余分区中。
Kafka概述