发送数据到kafka主题(topics)

本文概述

  • Kafka控制台生产者
  • 带Key生产者
  • 什么时候不存在主题?
  • 描述新主题
  • 更改默认值
Kafka控制台生产者为了将数据发送到Kafka主题,需要生产者。生产者的作用是向Kafka主题发送或写入数据/消息。
在本节中,我们将学习生产者如何将消息发送到Kafka主题。
可以使用以下步骤来启动生产者:
【发送数据到kafka主题(topics)】步骤1:启动zookeeper和kafka服务器。
步骤2:在命令行中键入命令:“ kafka-console-producer”。这将帮助用户从标准输入中读取数据并将其写入Kafka主题。
注意:根据操作系统选择“ .bat”或“ .sh”。
发送数据到kafka主题(topics)

文章图片
发送数据到kafka主题(topics)

文章图片
高亮显示的文本表示生成消息需要“经纪人列表”和“主题ID”。这是因为生产者必须知道要写入数据的主题的ID。
步骤3:了解所有要求后,尝试使用以下命令向主题生成消息:
‘ kafka-console-producer -broker-list localhost:9092 -topic < topic_name> ’ 。按回车。
发送数据到kafka主题(topics)

文章图片
注意:此处9092是Kafka服务器的端口号。在这里,选择“ myfirst”主题来向其写入消息。
“> ”将出现在新行中。开始产生一些消息,如下所示:
发送数据到kafka主题(topics)

文章图片
步骤4:按“ Ctrl c”并按“ Y”键存在。
因此,通过这种方式,生产者可以生产/发送一些有关Kafka主题的消息。
带Key生产者Kafka生产者可以使用密钥将数据写入主题。如果生产者未指定键,则数据将存储到key = null的任何分区中,否则数据将仅存储到指定的分区中。需要“ parse.key”和“ key.seperator”来指定主题的密钥。使用的命令是:
'kafka-console-producer --broker-list localhost:9092 --topic < topic_name> --property parse.key=true --property key.separator=, > key, value > another key, another value'

这里,key是特定的分区,value是生产者要写给主题的消息。
什么时候不存在主题?假设生产者希望将消息发送到尚不存在的新主题。在这种情况下,发出消息后将显示警告,如下快照所示。这只是一个警告。
发送数据到kafka主题(topics)

文章图片
为什么会有这个警告?
发生警告是因为之前没有“演示”主题。但是,一旦制片人写了一条信息,卡夫卡就以某种方式创建了这个话题。尽管没有为这个意外的主题举行领导人大选,但可能会看到“ LEADER_NOT_AVAILABLE”错误。但是,下一次,生产者可以继续写更多消息,因为不会再出现警告。这是因为该主题现在位于现有列表中。
用户可以使用“ -list”命令进行检查,如下所示:
发送数据到kafka主题(topics)

文章图片
可以在列表中看到主题“演示”。
描述新主题因此,由生产者直接创建的主题将获取默认的分区数及其复制因子为1。
例如,
发送数据到kafka主题(topics)

文章图片
当使用’ -describe’ 命令描述主题’ demo’ 时,其’ PartitionCount’ 和’ ReplicationFactor’ 的值为1(默认值)。因此,始终是在生成主题之前创建主题的更好选择。
更改默认值请按照以下步骤更改新主题的默认值:
  1. 使用记事本或任何其他文本编辑器打开“ server.properties”文件。
  2. 将num.partitions = 1的值编辑为新值。设为3。因此,每当引入此类新主题时,PartitionCount和ReplicationFactor的数量将为3(无论用户设置了什么)。
  3. 保存文件。
但是,始终要先创建主题。

    推荐阅读