如何测量 Kafka 中的 Avro 消息大小?

How to measure an Avro message size in Kafka?

我有一些制作人将 Avro 记录生成到 Kafka 主题中。我如何知道每条消息有多大(以字节为单位)?

这将有助于阐明邮件大小的含义。当前消息大小被认为是记录批次的大小,其中包括批次元数据和单个记录:https://kafka.apache.org/documentation/#recordbatch

在向Kafka发送数据之前,生产者根据batch.sizelinger.ms对数据进行批处理。一旦数据被批处理,记录就会根据 compression.type 配置进行压缩。这意味着,在您的批次准备好发送之前,您不会知道确切的记录批次大小。

如果您只对记录值大小的字节数感兴趣,您可以在消息serialized.

后查看字节数组大小

要了解主题接收的字节数,您可以在服务器端测量此指标:kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec 或在生产者端检查 outgoing-byte-rate 指标。