1. kafka介绍
2. kafka术语及定义
broker
每一个独立的kafka服务器被称为broker
集群
多个broker组成一个集群,在集群中,一个分区属于一个broker,该broker被称为分区的首领,同时在其他broker中还会有一个或多个该分区的备份,来实现消息冗余,当宕机时,其他broker会接管领导权,变为首领
控制器
每一个集群中都会有一个broker充当集群控制器的角色,首领在活跃的broker中选举产生
主题
kafka的消息通过主题进行分类,同一种消息为一个主题,等价于数据库中的表的结构
分区
每个主题都会有多个分区,一个分区就是一个消息提交日志,同一个主题的消息无法保证顺序,但是同一个分区里的消息可以保证顺序。
副本
每个分区都有一个首领副本,除了首领副本意外的所有副本都是跟随者副本
偏移量
每次读取数据后可以提交偏移量,下次读取将从偏移量开始读取,如果不提交,那么永远从头
消息
每个数据单元被称为消息,消息由生产者产生,被消费者处理。
批次
为了提高效率,kafka支持同时支持多条消息,这组消息即为一个批次
生产者
生产者负责生产写入消息,默认情况下,生产者会将消息均匀的写入到每个分区中,也可以通过消息键和分区器将消息写入到指定的分区中
消费者
多个消费者可以组成一个消费群组,每个消费者和没一个消费群组都只能消费一个主题的数据。同时一个主题的一个分区只能被一个消费者消费,如果消费者数量比主题分区数量多,那么多余的消费者就会处于空闲状态