如何在命令行中使用带有人类可读时间戳的 Kafka 消息?



我知道kafka-console-consumer有一个属性print.timestamp=true,但它打印的是纪元时间而不是人类可读的时间。如何在命令行中使用带有人类可读时间戳的 Kafka 消息?

直接使用kafka-console-consumer(kafka.tools.ConsoleConsumer是不可能的。

打印邮件kafka-console-consumer使用kafka.common.MessageFormatter.它的职责是基于属性以人类可读的方式打印消息。默认情况下,它使用kafka.tools.DefaultMessageFormatter实现,将时间戳打印为纪元时间。

要以更易读的方式打印时间戳,我可以看到选项:

  1. 实现您自己的kafka.common.MessageFormatter并在kafka-console-consumer程序的属性中进行设置(--formatter CustomFormatterClassName(
  2. 使用 bash/awk 等解析kafka-console-consumer之外的时间戳

最新更新