kafka相关概念与消费模型
-
broker:kafka集群中的一个节点
topic:主题是kafka的逻辑上的队列
partition:一个topic可以包含一个或多个partition,每个partition的消息数据都是单独存储的,offset也是单独维护的,partition内部消息有序 partition复制因子:一个topic的所有分区会分布到各个broker上,允许设置复制因子使分区可以在其他节点上留存备份,在主分区所在broker宕机时,可以作为新的主分区继续提供服务
consumer group:一个topic可以有消费者组消费消息,kafka为每个消费者组单独管理每个分区的消费偏移量offset,消费者组间是广播模式,对于一个消费者组内是负载均衡,即一条消息可以被多个消费者组消费,只能被一个消费者组内的其中一个消费者消费;消费者组内的每个成员负责一定数量的分区,当消费者组内的消费者发生变动时,会触发分区的重平衡
pull消费模型:消费者向负责分区主动拉取消息,分区的消费偏移量通过一个默认的topic来记录,也可以显示指定
pull模型的优点: 消费速度可以由消费者自由控制 逐条消费或者批量消费可以由消费者自由控制 broker设计更简单