kafka模型理解
1、消息发送至一个topic,而这个topic可以由多个partition组成,每条消息在partition中的位置称为offset
2、消息存在有效期,如果设置为2天,则消息2天后会被删除
3、每个consumer可以消费消息,消息的当前最新消息称为偏移量offset(注意与前面的offset相区分,前面说的是消息的位置,这里是指消息被消费的位置)
4、consumer消费消息一般都是线性读取,但也可以按任意顺序读取
5、kafka统一了jms消息模型。
在jms消息模型中,存在queue(队列模式)和pulish/subscribe(发布/订阅)两种模式。在队列模式下,一条消息只能被所有的消费者中的一个消费,在发布/订阅模式下,一条消息可以被任意一个消费者所消费。
kafka中,去掉了queue和publish/subscribe模式,采用了消费者组来统一模型,每一条消息只能被消费者组中的一个所消费,当所有的消费者集中于一个消费者组中,则实现了queue模式,当所有的消费者一一分散在消费者组中,则实现了publish/subscribe模式。
6、consumer消费消息时,采取的是pull模式。