【发布时间】:2020-06-08 16:51:03
【问题描述】:
配置
props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 1000);
props.put(ConsumerConfig.FETCH_MAX_WAIT_MS_CONFIG, 10);
props.put(ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG, 50*1024*1024);
props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
打印整个有效载荷,获取它和消费者数据的任何帮助都会有所帮助 ConsumerRecord(topic = xxxxxxx, partition = 2, offset = 1512343, CreateTime = 1591460009853, 序列化键大小 = 8, 序列化值大小 = 9506789.......
日志太大,无法打印和分析
编辑 2:可以在那个大日志中看到更多这个异常 原因:org.springframework.kafka.KafkaException: Interrupted while queuing ack
【问题讨论】:
-
>prints the whole payload- 不清楚你的意思是什么,或者什么软件正在“打印”它。如果是您的代码,您可以修改打印的内容。 Spring 只在 DEBUG 日志中记录整个记录。如果这就是您的意思,我们可以添加一个选项来防止这种情况发生。它究竟是在“哪里”被“打印”的? -
这是一个错误日志,出了点问题,假设这可能是消息大小
-
您能否编辑问题以显示日志(减去记录),以便我可以准确查看需要更新哪些记录器?
-
谢谢拉塞尔,我仍然在打岩石,为什么这些首先发生,喜欢不要打印消息,只是元数据足以应对任何审计/错误
-
修复应该在周三发布。该错误是因为您使用 MANUAL_IMMEDIATE AckMode 在
foreign线程上调用Acknowledgment.acknowledge();并且该外来线程已被中断,从而阻止了 ack 的排队。
标签: java spring apache-kafka spring-kafka