Kafka的基本生产消费演示

537 阅读2分钟

这是我参与8月更文挑战的第4天,活动详情查看: 8月更文挑战

之前两篇文章我们完成了Kafka的介绍和安装,接下来就让我使用Kafka‘写一个HelloWorld’吧。

这次我们来通过命令行开启kafka服务、开启kafka消费者服务、开启kafka生产者服务,通过生产者服务发送消息数据,进而实现消息的生产-消费‘helloworld’。

下述脚本均在kafka安装路径/bin下执行脚本,作者亲测。

1.启动ZooKeeper服务

首先让我们来启动ZooKeeper服务,指定配置文件zookeeper.properties。

./zookeeper-server-start.sh -daemon ../config/zookeeper.properties

启动Kafka服务

执行以下脚本启动Kafka服务,指定配置文件server.properties

./kafka-server-start.sh ../config/server.properties

image.png

创建Topic

通过脚本来创建topic。

./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic kafka-topic-test1

image.png

这里我们来说一下几个重要的参数配置。

--replication-factor 1 : topic的副本数,理论上topic可以存在多个副本,并且这些副本会均匀的分配在各个broker中。还有这里需要注意点,topic副本数量不能超过broker的数量。

--partitions 1 : topic的分区数,如果broker只有一个的话,那么这里默认全部存放在那个broker中;如果有多个broker的话,kafka为topic提供了分区策略,在分布式系统中,当消费者获取数据时,会获取到哪个分区有新数据,然后从相应分区取得相关的数据;这里涉及到一个知识点,那就是偏移量,这个我们回头专门来解释一下。

--topic kafka-topic-test1 : 设置topic的名称。

查询已有Topic列表

查询脚本如下:

./kafka-topics.sh --list --zookeeper localhost:2181

image.png

--list : 查询topic列表。

通过查询可以得到所有的topic。

启动Kafka消费者服务

开始执行消费者服务脚本

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic kafka-topic-test1 --from-beginning

image.png

这里也要说一下相关的配置参数。

--from-beginning : 读取还没有被消费的消息数据。

启动Kafka生产者服务

开始执行生产者服务脚本

./kafka-console-producer.sh --broker-list localhost:9092 --topic kafka-topic-test1

image.png

来试一下成果

我们接下来在生产者窗口中输入一段文字,如图所示:

image.png

随后我们再回头去看消费者窗口,你会看到这样的现象:

image.png

这样我们就已经完成了kafka基本操作的hello world了,庆祝庆祝吧!

总结一下

在这之后我们会再说一下消费数据从生产者,传递到消费者的整个生命周期。

如有不察之处,还请大家及时指出,感谢。