Kafka常用命令之kafka-console-consumer.sh解读

2023-03-07 11:03:35 常用命令 Kafka

kafka-console-consumer.sh解读

kafka-console-consumer.sh 脚本是一个简易的消费者控制台。

shell 脚本的功能通过调用 kafka.tools 包下的 ConsoleConsumer 类,并将提供的命令行参数全部传给该类实现。

  • 注意:Kafka 从 2.2 版本开始将 kafka-topic.sh 脚本中的 −−ZooKeeper 参数标注为 “过时”,推荐使用 −−bootstrap-server 参数。
  • 若读者依旧使用的是 2.1 及以下版本,请将下述的 --bootstrap-server 参数及其值手动替换为 --zookeeper zk1:2181,zk2:2181,zk:2181。
  • 一定要注意两者参数值所指向的集群地址是不同的。

消息消费

bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topic topicName

表示从 latest 位移位置开始消费该主题的所有分区消息,即仅消费正在写入的消息。

从开始位置消费

bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --from-beginning --topic topicName

表示从指定主题中有效的起始位移位置开始消费所有分区的消息。

显示key消费

bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --property print.key=true --topic topicName

消费出的消息结果将打印出消息体的 key 和 value。

若还需要为你的消息添加其他属性

请参考下述列表

参数值类型说明有效值
--topicstring被消费的topic
--whiteliststring正则表达式,指定要包含以供使用的主题的白名单
--partitioninteger指定分区
除非指定’–offset’,否则从分区结束(latest)开始消费
--offsetstring执行消费的起始offset位置
默认值:latest
latest
earliest
<offset>
--consumer-propertystring将用户定义的属性以key=value的形式传递给使用者
--consumer.configstring消费者配置属性文件
请注意,[consumer-property]优先于此配置
--fORMatterstring用于格式化kafka消息以供显示的类的名称
默认值:kafka.tools.DefaultMessageFormatter
kafka.tools.DefaultMessageFormatter
kafka.tools.LoggingMessageFormatter
kafka.tools.NoOpMessageFormatter
kafka.tools.ChecksumMessageFormatter
--propertystring初始化消息格式化程序的属性print.timestamp=true|false
print.key=true|false
print.value=true|false
key.separator=<key.separator>
line.separator=<line.separator>
key.deserializer=<key.deserializer>
value.deserializer=<value.deserializer>
--from-beginning从存在的最早消息开始,而不是从最新消息开始
--max-messagesinteger消费的最大数据量,若不指定,则持续消费下去
--timeout-msinteger在指定时间间隔内没有消息可用时退出
--skip-message-on-error如果处理消息时出错,请跳过它而不是暂停
--bootstrap-serverstring必需(除非使用旧版本的消费者),要连接的服务器
--key-deserializerstring
--value-deserializerstring
--enable-systest-events除记录消费的消息外,还记录消费者的生命周期
(用于系统测试)
--isolation-levelstring设置为read_committed以过滤掉未提交的事务性消息
设置为read_uncommitted以读取所有消息
默认值:read_uncommitted
--groupstring指定消费者所属组的ID
--blackliststring要从消费中排除的主题黑名单
--csv-reporter-enabled如果设置,将启用csv metrics报告器
--delete-consumer-offsets如果指定,则启动时删除zookeeper中的消费者信息
--metrics-dirstring输出csv度量值
需与[csv-reporter-enable]配合使用
--zookeeperstring必需(仅当使用旧的使用者时)连接zookeeper的字符串
可以给出多个URL以允许故障转移

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

相关文章