Kafka常用命令之kafka-console-producer.sh

kafka-console-producer.sh 脚本通过调用 kafka.tools.ConsoleProducer 类加载命令行参数的方式,在控制台生产消息的脚本。

本文是基于 Kafka_2.12-2.5.0 版本编写的,--bootstrap-server 参数于此版本开始被使用,而 --broker-list 也是在此版本开始被置为过时,但其属性值依旧保持不变。在使用较旧版本时,注意其差别,切勿盲目复制粘贴。

一、无key型消息

 默认情况下,所生产的消息是没有 key 的,命令如下:

bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic topicName

 执行上述命令后,就会在控制台等待键入消息体,直接输入消息值(value)即可,每行(以换行符分隔)表示一条消息,如下所示。

>Hello Kafka!
>你好 kafka!

 正常情况,每次回车表示触发“发送”操作,回车后可直接使用“Ctrl + c”退出生产者控制台,再使用 kafka-console-consumer.sh 脚本验证本次的生产情况。

二、有key型消息

 当需要为消息指定 key 时,可使用如下命令:

bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic topicName --property parse.key=true

 默认消息键与消息值间使用“Tab键”进行分隔,切勿使用转义字符(\t),如下所示:

>Lei Li    Hello Kafka!
>Meimei Han    你好 kafka!

 键入如上信息表示所生产的消息“Lei Li”为消息键,“Hello Kafka”为消息值。

附表 属性列表

 下表列举了当前版本支持的所有参数用法,敬请参阅。

参数值类型说明有效值
--bootstrap-serverString要连接的服务器
必需(除非指定--broker-list)
形如:host1:port1,host2:port2
--topicString(必需)接收消息的主题名称
--broker-listString已过时要连接的服务器形如:host1:port1,host2:port2
--batch-sizeInteger单个批处理中发送的消息数200(默认值)
--compression-codecString压缩编解码器none、gzip(默认值)
snappy、lz4、zstd
--max-block-msLong在发送请求期间,生产者将阻止的最长时间60000(默认值)
--max-memory-bytesLong生产者用来缓冲等待发送到服务器的总内存33554432(默认值)
--max-partition-memory-bytesLong为分区分配的缓冲区大小16384
--message-send-max-retriesInteger最大的重试发送次数3
--metadata-expiry-msLong强制更新元数据的时间阈值(ms)300000
--producer-propertyString将自定义属性传递给生成器的机制形如:key=value
--producer.configString生产者配置属性文件
[--producer-property]优先于此配置
配置文件完整路径
--propertyString自定义消息读取器parse.key=true|false
key.separator=<key.separator>
ignore.error=true|false
--request-required-acksString生产者请求的确认方式0、1(默认值)、all
--request-timeout-msInteger生产者请求的确认超时时间1500(默认值)
--retry-backoff-msInteger生产者重试前,刷新元数据的等待时间阈值100(默认值)
--socket-buffer-sizeIntegerTCP接收缓冲大小102400(默认值)
--timeoutInteger消息排队异步等待处理的时间阈值1000(默认值)
--sync同步发送消息
--version显示 Kafka 版本
不配合其他参数时,显示为本地Kafka版本
--help打印帮助信息
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值