我们正在使用org.apache.kafka.clients.producer.producerrecord向kafka发送带有标题的消息
public ProducerRecord(String topic, Integer partition, K key, V value, Iterable<Header> headers) {
this(topic, partition, (Long)null, key, value, headers);
}
如何使用命令查看这些标题。kafka-console-consumer.sh只显示有效负载,不显示标题。
3条答案
按热度按时间rwqw0loc1#
你可以使用优秀的Kafka卡特工具。
示例命令:
样本输出:
kafkacat头选项仅在的最新版本中可用
kafkacat
; 如果当前版本不包含主分支,您可能希望自己从主分支进行构建。您也可以从docker运行kafkacat:
如果使用docker,请记住如何联系kafka broker的网络含义。
6za6bjd02#
从
kafka-console-consumer.sh
脚本:src公司:https://github.com/apache/kafka/blob/2.1.1/bin/kafka-console-consumer.sh
在
kafka.tools.ConsoleConsumer
标头提供给格式化程序,但没有任何现有格式化程序使用它:src公司:https://github.com/apache/kafka/blob/2.1.1/core/src/main/scala/kafka/tools/consoleconsumer.scala
在上面链接的底部,您可以看到现有的格式化程序。
如果你想打印标题,你需要实现你自己的
kafka.common.MessageFormatter
尤其是它的写入方法:然后使用提供您自己的格式化程序的--formatter运行您的控制台使用者(它也应该出现在类路径上)。
另一种简单快捷的方法是使用kafkaconsumer实现自己的迷你程序,并在debug中检查头文件。
mm5n2pyu3#
你也可以用kafkactl。e、 g.输出为yaml:
样本输出:
免责声明:我是这个项目的贡献者