apache-kafka - 我在哪里可以找到。Kafka 异常“OffsetMetadataTooLargeException”的详细信息?
问题描述
我试图从 kafka 生产者的角度了解可能导致“OffsetMetadataTooLargeException”的原因,但找不到任何文档。有人可以帮我吗?
解决方案
从文档中:
客户端已尝试使用大于服务器允许的最大大小的关联元数据保存其偏移量。
它是代理级别的配置
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 字节(默认)或您明确配置的任何值。
推荐阅读
- csvhelper - 有没有办法忽略或全局替换 CSVHelper 中的 NUL 字符?
- python-3.x - 将 Spacy 对象序列化为 Json
- sql - Oracle PL/SQL 检查参数是否有特殊字符
- r - R中分组dplyr数据的迭代除以特定行
- javascript - 在 Javascript 中创建一个复杂的对象或从数组中提取对象
- sql-server - Entity Framework 6.4 在调用 HasChanges 时将属性设置为 null
- android - 如何在 Xamarin 表单中从另一个应用程序启动应用程序
- php - 如何在 PHP 中使用可能更改的环境变量设置 PDO 连接?
- xamarin.android - Xamarin (Android):检测设备是否有显示槽口
- sql - Join Generated Date Sequence