我试图从卡夫卡生产者的角度了解什么可能导致“ OffsetMetadataTooLargeException”,但找不到任何文档。有人可以帮我吗?
答案 0 :(得分:0)
从文档中:
客户端尝试使用关联的元数据保存其偏移量 大于服务器允许的最大大小。
offset.metadata.max.bytes
与偏移提交相关联的元数据条目的最大大小
偏移量的元数据通常可以是:
long: offset
Optional<Integer>: leaderEpoch
String: metadata
OffsetAndMetadata
用于通过KafkaConsumer
(Reference doc)进行提交。
这里的String: metadata
是为..
Kafka偏移提交API允许用户提供其他 提交偏移量时的元数据(以字符串形式)。这个 (例如)可用于存储有关建立哪个节点的信息 提交,什么时候提交提交,等等。
由于您尚未粘贴任何代码,因此我假设您可能使用了以下一种代码:
KafkaProducer#sendOffsetsToTransaction()
KafkaConsumer#commitAsync()
KafkaConsumer#commitSync()
您可能会在其中提供Map<TopicPartition, OffsetAndMetadata>
,并且正在使用OffsetAndMetadata
参数创建String: metadata
对象,使其比已配置的对象大,从而使偏移量和元数据变为> 4096字节(默认值)或您明确配置的任何值。
答案 1 :(得分:0)
这是详细信息。发生这种情况:“客户端已尝试使用大于服务器允许的最大大小的关联元数据保存偏移量。”
http://kafka.apache.org/20/javadoc/org/apache/kafka/common/errors/OffsetMetadataTooLarge.html