Kafka kafka.common.MessageSizeTooLargeException 在消费者

Kafka kafka.common.MessageSizeTooLargeException at consumer

对于一些较大的邮件,我遇到了以下错误:

kafka.common.MessageSizeTooLargeException: Message size is 1185198 bytes which exceeds the maximum configured message size of 1000012.

因此根据 this thread 增加了代理和消费者的消息大小:

fetch.message.max.bytes=10485760
replica.fetch.max.bytes=10485760
message.max.bytes=10485760


添加到 config/server.properties

但随后消息通过但消费者出错:

[2015-08-26 21:08:08,722] ERROR Error processing message, stopping consumer:  (kafka.tools.ConsoleConsumer$)
kafka.common.MessageSizeTooLargeException: Found a message larger than the maximum fetch size of this consumer on topic xyz partition 0 at fetch offset 29. Increase the fetch size, or decrease the maximum message size the broker will allow.
    at kafka.consumer.ConsumerIterator.makeNext(ConsumerIterator.scala:90)
    at kafka.consumer.ConsumerIterator.makeNext(ConsumerIterator.scala:33)
    at kafka.utils.IteratorTemplate.maybeComputeNext(IteratorTemplate.scala:66)
    at kafka.utils.IteratorTemplate.hasNext(IteratorTemplate.scala:58)
    at scala.collection.Iterator$class.foreach(Iterator.scala:660)
    at kafka.utils.IteratorTemplate.foreach(IteratorTemplate.scala:32)
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:73)
    at kafka.consumer.KafkaStream.foreach(KafkaStream.scala:25)
    at kafka.tools.ConsoleConsumer$.main(ConsoleConsumer.scala:166)
    at kafka.tools.ConsoleConsumer.main(ConsoleConsumer.scala)
Consumed 3 messages

看来消费者不挑fetch.message.max.bytes=10485760

kafka_2.9.1-0.8.2.1

有什么指点吗?

您不应将 fetch.message.max.bytes 放入 config/server.properties,而应放入您的 ConsumerConfig(有关详细信息,请参阅 here)。如果您使用控制台消费者,您可以传递一个 --consumer.config consumer.properties 标志,其中 consumer.properties 文件将包含此配置值。