首页 > 解决方案 > 我在哪里可以找到。Kafka 异常“OffsetMetadataTooLargeException”的详细信息?

问题描述

我试图从 kafka 生产者的角度了解可能导致“OffsetMetadataTooLargeException”的原因,但找不到任何文档。有人可以帮我吗?

标签: apache-kafka

解决方案


从文档中:

客户端已尝试使用大于服务器允许的最大大小的关联元数据保存其偏移量。

它是代理级别的配置

offset.metadata.max.bytes

与偏移提交关联的元数据条目的最大大小

偏移量的元数据通常可以是:

long: offset
Optional<Integer>: leaderEpoch
String: metadata

是为通过(参考文档OffsetAndMetadata提交而构建的。KafkaConsumer

这里String: metadata是为了..

Kafka 偏移量提交 API 允许用户在提交偏移量时提供额外的元数据(以字符串的形式)。这对于(例如)存储有关哪个节点进行了提交、提交的时间等信息很有用。

由于您没有粘贴任何代码,我假设您可能正在使用以下之一:

KafkaProducer#sendOffsetsToTransaction()
KafkaConsumer#commitAsync()
KafkaConsumer#commitSync()

您可能会在其中给出 aMap<TopicPartition, OffsetAndMetadata>并且您正在OffsetAndMetadata使用参数创建对象,String: metadata使其比配置的太大,因此您的偏移量和元数据变为 > 4096 字节(默认)或您明确配置的任何值。


推荐阅读