2-16 2,880 views
节选自Kafka官方文档(http://kafka.apache.org/documentation.html)
介绍
Kafka是一个分布式、分区消息服务,基本概念包括:
1)topic,消息流;
2)producer,向topic发布消息;
3)consumer,订阅topic,接收、处理消息;
4)broker,Kafka集群由多个broker组成。
Topic
topic包含多个分区,如图所示:
每个分区是一个有序的消息队列,消息按照从旧到新的顺序排列,新的消息不断追加到尾部。每个消息使用递增的id(offset)来唯一标识。
消息在Kafka中会被保存一段时间,而不管它是否被消费,这个保存时间可以设置。如果保存时间设置为2天,那么在2天内,消息都可以被消费,2天后消息将被删除。
每个消费者需要保存当前所消费消息在分区中的位置(offset)。通常情况下,消费者在消费消息时递增offset表示消息已被消费。另外,消费者也可以灵活地设置offset,例如,设置到较旧的offset,重复消费已消费过的消息。