【发布时间】:2014-01-28 00:16:18
【问题描述】:
我使用 Java Producer API 将字符串消息发送到 Kafka V. 0.8。
如果消息大小约为 15 MB,我会收到 MessageSizeTooLargeException。
我尝试将 message.max.bytes 设置为 40 MB,但仍然出现异常。小消息没有问题。
(异常出现在生产者,我在这个应用程序中没有消费者。)
我能做些什么来摆脱这个异常?
我的示例生产者配置
private ProducerConfig kafkaConfig() {
Properties props = new Properties();
props.put("metadata.broker.list", BROKERS);
props.put("serializer.class", "kafka.serializer.StringEncoder");
props.put("request.required.acks", "1");
props.put("message.max.bytes", "" + 1024 * 1024 * 40);
return new ProducerConfig(props);
}
错误日志:
4709 [main] WARN kafka.producer.async.DefaultEventHandler - Produce request with correlation id 214 failed due to [datasift,0]: kafka.common.MessageSizeTooLargeException
4869 [main] WARN kafka.producer.async.DefaultEventHandler - Produce request with correlation id 217 failed due to [datasift,0]: kafka.common.MessageSizeTooLargeException
5035 [main] WARN kafka.producer.async.DefaultEventHandler - Produce request with correlation id 220 failed due to [datasift,0]: kafka.common.MessageSizeTooLargeException
5198 [main] WARN kafka.producer.async.DefaultEventHandler - Produce request with correlation id 223 failed due to [datasift,0]: kafka.common.MessageSizeTooLargeException
5305 [main] ERROR kafka.producer.async.DefaultEventHandler - Failed to send requests for topics datasift with correlation ids in [213,224]
kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.
at kafka.producer.async.DefaultEventHandler.handle(Unknown Source)
at kafka.producer.Producer.send(Unknown Source)
at kafka.javaapi.producer.Producer.send(Unknown Source)
【问题讨论】:
-
我的第一反应是要求您将这条巨大的信息分成几个较小的信息:-/ 我的猜测是由于某种原因这是不可能的,但您可能仍想重新考虑它:巨大消息通常意味着某处存在设计缺陷,应该真正修复。
-
谢谢,但这会使我的逻辑复杂得多。为什么将 Kafka 用于 15MB 左右的消息是一个坏的主意? 1 MB 是可以使用的最大邮件大小限制吗?我在 Kafka 文档中发现的消息大小限制并不多。
-
这与 Kafka 或任何其他消息处理系统完全无关。我的理由是:如果您的 15MB 文件出现问题,那么事后清理这些烂摊子是非常昂贵的。这就是为什么我通常将大文件拆分为许多较小的作业(然后通常也可以并行执行)。
-
您是否使用过任何压缩方式?能否请您分享更多细节,仅凭一个词很难猜出一些东西
-
对于那些偶然发现这个问题,但使用
librdkafka与Kafka沟通的人,另请参阅:stackoverflow.com/questions/60739858/…
标签: java apache-kafka