Kafka流聚合RecordTooLargeException

时间:2020-08-18 20:47:58

标签: java apache-kafka aggregate apache-kafka-streams

尝试以5分钟的滚动窗口汇总来自单个流的数据。最初,它运行良好,并且能够打印汇总记录。使用Java 8进行开发。

但是后来开始收到错误-

“ org.apache.kafka.common.errors.RecordTooLargeException:序列化时消息为5292482字节,大于1048576,这是max.request.size配置的值” < / p>

现在,每次在EKS群集中启动我的应用程序后,都在一分钟内崩溃,并出现相同的错误。

试图设置以下streamconfig,但它们也没有帮助: StreamsConfig.RECEIVE_BUFFER_CONFIG(50 MB) StreamsConfig.CACHE_MAX_BYTES_BUFFERING_CONFIG(50 MB)

以下任何人都可以解决此问题:

  1. 使用inMemoryKeyValueStore。有没有为inMemoryKeyValueStore分配一些内存的特定属性?
  2. 还是应该切换到persistentKeyValueStore?
  3. 使用AWS MSK,以便在创建集群时定义代理和主题级别设置-具有适当值的message.max.bytes。

谢谢。

1 个答案:

答案 0 :(得分:0)

需要增加生产者配置max.request.size(如错误消息中所述)。

请注意,您可能需要增加您另外提到的代理/主题配置message.max.bytes