📅  最后修改于: 2021-01-05 02:48:56             🧑  作者: Mango
在本部分中,用户将学习消费者如何消费或阅读Kafka主题中的消息。
使用者采取了以下步骤来消费来自主题的消息:
步骤1:首先启动zookeeper和kafka服务器。
步骤2:在命令行上输入命令:“ kafka-console-consumer”。这将帮助用户从Kafka主题中读取数据并将其输出到标准输出。
注意:根据操作系统选择“ .bat”或“ .sh”。
高亮显示的文本表示消费者需要“引导服务器”才能连接到Kafka主题。同样,需要一个“ topic_id”来知道消费者将从哪个主题中读取消息。
步骤3:了解所有要求后,尝试使用以下命令使用主题中的消息:
'kafka-console-consumer -bootstrap-server localhost:9092 -topic
注意:Bootstrap服务器是Kafka服务器,端口号= 9092。
在上一节中,针对此主题生成了三则消息。但是,在上面的快照中,可以看到0条消息。这是因为Apache Kafka不会阅读所有主题。 Kafka使用者将仅使用那些仅在使用者处于活动状态时才产生的消息。这可以归类为Apache Kafka的缺点。
让我们了解一下:
打开一个新的终端。启动Kafka控制台制作器。将两个生产者-消费者控制台保持在一起,如下所示:
现在,在生产者控制台中产生一些消息。之后,按Ctrl + C并退出。
可以看到,生产者控制台当前生成的所有消息都反映在消费者控制台中。这是因为消费者处于活动状态。
Apache Kafka可以产生数百万条消息。有时,消费者可能需要阅读特定主题的全部消息。
为此,请将“ -from-beginning ”命令与上述kafka控制台使用者命令一起使用,如下所示:
'kafka-console-consumer.bat -bootstrap-server 127.0.0.1:9092 -topic myfirst -from-beginning' 。该命令告诉Kafka主题,以允许使用者从头开始读取所有消息(即,从使用者处于非活动状态时开始)。
例如,
在上面的快照中,很明显,所有消息都是从头开始显示的。
注意:消息的顺序不是“总计”。这是因为该序列仅在分区级别(如Kafka简介部分所述)。
对于主题“ myfirst”,我们有三个分区。因此,如果用户希望查看订单,请创建具有单个分区值的主题。它将按顺序显示整个消息。
完成消息交换过程后,按“ Ctrl + C”并停止。
因此,当用户希望使用者阅读时,可以从开始或从该状态开始消耗多个消息。