Ich sende String-Nachrichten mit der Java Producer API an Kafka V. 0.8. Wenn die Nachrichtengröße ca. 15 MB beträgt, erhalte ich eine MessageSizeTooLargeException
. Ich habe versucht, message.max.bytes
auf 40 MB einzustellen , aber ich bekomme immer noch die Ausnahme. Kleine Nachrichten funktionierten ohne Probleme.
(Die Ausnahme erscheint im Hersteller, ich habe keinen Verbraucher in dieser Anwendung.)
Was kann ich tun, um diese Ausnahme zu beseitigen?
Mein Beispiel Produzent Konfiguration
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);
}
Fehlerprotokoll:
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)