Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。

消息,也被称为记录,可以把它看作数据库表中某一行的记录。分批次写入 Kafka,批次就代指的是一组消息。主题(Topic),可以说一个主题代表了一类消息。相当于是对消息进行分类。主题就像是数据库中的表。伸缩性,单一主题中的分区有序,但是无法保证主题中所有的分区有序生产者(Producer),生产者用于持续不断的向某个主题发送消息。消费者(Consumer),消费者用于处理生产者产生的消息。消费者群组(Consumer Group)指的就是由一个或多个消费者组成的群体。偏移量(Consumer Offset)是一种元数据,它是一个不断递增的整数值,用来记录消费者发生重平衡时的位置,以便用来恢复数据。broker,broker 接收来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存。集群 的组成部分,broker 集群由一个或多个 broker 组成,每个集群都有一个 broker 同时充当了集群控制器的角色(自动从集群的活跃成员中选举出来)。副本(Replica),副本的数量是可以配置的,Kafka 定义了两类副本:领导者副本(Leader Replica) 和 追随者副本(Follower Replica),前者对外提供服务,后者只是被动跟随。