之前我们已经初步在命令行中使用了Kafka,下面我们就来说日一下数据从生产到消费的一个生命周期。
说到这里,就必须要提前说一下Kafka的几大组成部分了。
1.生产者和消费者
producer and consumer,生产者将数据发送到Kafka服务中,由消费者去提取数据进行消费。
2.broker(集群实例)
Kafka的优势之一就是其可以支撑集群分布式部署,在每个服务器上开启Kafka服务(broker.id不同),每个Kafka服务就是一个集群实例,也可以说是一个broker。
3.topic(主题)
Kafka中的关键词之一,单个topic代表着一种类型的消息,等同于对生产者发送的消息进行一个归类。
4.partition(分区)
分区,topic下的更小元素,所以topic下面会存在多个partition,每个分区会在磁盘上对应着一个文件。
5.offset(偏移量)
因为一个分区对应着一个磁盘文件,消息发送到Kafka中,就会被放置在分区中,这个时候消息的位置如何获取,那就要考偏移量offset来实现标记点。
到此,Kafka的几个基本构成就介绍完成了。
现在就可以来说一下重头戏了。
1.由生产者对topic进行消息的发送。
2.Kafka将消息数据在中topic或直接存放,或进行分区存放,同时也确保消息能被正常获取到,并且在各分区维持一个数量的平衡。
3.然后消费者进行订阅特定的topic。
4.Kafka获得消费者要订阅的指令,将会立即将特定的消息发送给消费者。
5.在消费者将消息数据消费后,同时会给Kafka一个反馈。
6.Kafka收到确认后,会利用偏移量更新为最新值,并在ZooKeeper中进行更新。
7.由此,从生产者发出消息数据到消费者对其进行消费,就完成了。
本是微末凡尘,却也心向天空。