Kafka在目前Java程序员的技术栈中还是处于非常重要的地位,先根据搜集到的文档,视频等资料,对Kafka的学习进行现阶段总结,本文中的代码片段图片来自于《Kafka权威指南》电子版截图。
1. 单机版Kafka架构模型图如下:
名词解释:
broker:一个独立的MQ服务器被称为broker。多个MQ服务器可组成broker集群。
producer:生产者,生成数据后把数据发送给消息队列的应用程序。
consumer:消费者,从消息队列中获取producer生成的消息。
consumer group:消费组,一个或多个消费者可选择组成一个消费组。在Kafka中,一个消费组里的消费者数量不能超过要消费的topic的分区个数,这会导致多出来的消费者不能获取到消息。
topic:主题,MQ存储消息时对消息的分类命名。不同的消费组可以同时消费同一个topic。
partition:分区,把一个主题分成多份,每一份就是一个分区。Kafka被称为分布式集群的主要原因是因为它指定topic下的数据并不是只在一个broker里,通过分区分布在集群各个broker里。
2. 生产者如何给Kafka发数据