Kafka是一个消息队列,把消息放到队列里边的叫生产者,从队列里边消费的叫消费者。
kafka作为一个中间件,队列不单单只有一个,而是有多个队列,上面我们已经知道要从队列进行生成和消费,就需要生产者和消费者,而多个队列,则就需要知道把数据丢给哪个队列,从哪个队列进行消费,我们需要给队列取名字,队列的名称就叫Topic。
有了Kafka的Topic,我们就可以多个生产者往同一个队列生成数据,多个消费者可以往同一个队列消费数据。
为了提高一个队列的吞吐量,Kafka会把Topic进行分区(Partition)
在Kafka中,生产者其实是往一个Topic的分区(Patition)中生成数据,消费者也是往一个Topic中的分区消费数据。
Kafka服务器叫做Broker,Kafka集群则是由多个Kafka服务器组成。
实际上一个Topic会分为多个Partition,实际上Partition会分布到不同的Broker中,并且Kafka会有Replication Partition,我们数据存在不同的Partition上,那kafka就把这些partition做备份。比如,现在我们有三个Partition,分别存在三台broker上。每个Partition都会备份,这些备份散落在不同的broker上(下图红色,蓝色颜色部分是备份)。
多个消费者可以组成一个消费者组。
最后请查看完整的Kafka关键词概念图: