Apache kafka org.apache.kafka.common.errors.RecordTooLargeException-删除大小超过最大限制的消息并推入另一个kafka主题

Apache kafka org.apache.kafka.common.errors.RecordTooLargeException-删除大小超过最大限制的消息并推入另一个kafka主题,apache-kafka,apache-beam,Apache Kafka,Apache Beam,org.apache.kafka.common.errors.RecordTooLargeException:在[Partition=Offset]:{binlog-0=170421}处有一些消息的大小大于获取大小1048576,因此无法返回 您好,我遇到了上述异常,我的apache beam数据管道失败。我希望卡夫卡阅读器忽略大于默认大小的消息&可能出于日志目的将其推到另一个主题中 Properties kafkaProps = new Properties(); kafkaProps.set

org.apache.kafka.common.errors.RecordTooLargeException:在[Partition=Offset]:{binlog-0=170421}处有一些消息的大小大于获取大小1048576,因此无法返回

您好,我遇到了上述异常,我的apache beam数据管道失败。我希望卡夫卡阅读器忽略大于默认大小的消息&可能出于日志目的将其推到另一个主题中

Properties kafkaProps = new Properties();
kafkaProps.setProperty("errors.tolerance", "all");
kafkaProps.setProperty("errors.deadletterqueue.topic.name", "binlogfail");
kafkaProps.setProperty("errors.deadletterqueue.topic.replication.factor", "1");
已尝试使用上述方法,但仍面临记录过大的异常

此链接表示,上述属性只能在转换或序列化期间使用

有没有办法解决我面临的问题。任何帮助都将不胜感激

我希望卡夫卡阅读器忽略大于默认大小的消息

对于Beam,我不确定您是否可以捕获该错误并跳过它。您必须转到原始Kafka消费者/生产者实例来处理try catch逻辑

&为了便于记录,可能会将其推到另一个主题中

Properties kafkaProps = new Properties();
kafkaProps.setProperty("errors.tolerance", "all");
kafkaProps.setProperty("errors.deadletterqueue.topic.name", "binlogfail");
kafkaProps.setProperty("errors.deadletterqueue.topic.replication.factor", "1");
如果不先更改代理设置以允许更大的消息,然后再更改客户端属性,这是不可能的

错误。*
属性用于KafkaConnectAPI,而不是消费者/生产者(如Beam)


相关-

我们只消费,生产商不在我们的控制范围内。在消费者方面,有没有什么方法可以让我忽略这些很少出现的大消息。这是一种预防措施,可以忽略此类事件。生产商将得到相同的错误。默认情况下,是代理拒绝大型消息。如果代理已经更新,您需要按照链接的帖子更新消费者设置。再说一次,不,您需要访问beam中的poll/process循环。将进行检查。如果这回答了您的问题,请随意使用帖子旁边的复选标记接受;)你有完整的堆栈跟踪吗?如果是,请在这里张贴。我想这不是卡夫卡约的问题,可能与@cricket_007之前提到的代理配置有关。