我得到Message size too large的例外,当我尝试发送邮件是超过1个MB的大小。当我尝试生成消息时,错误出现在我的客户端应用程序中。经过一番谷歌搜索后,我发现应该更改设置以增加最大消息大小。嗯,我在/kafka/config/server.properties文件中做到了。我添加了接下来的 2 个设置:
message.max.bytes=15728640
replica.fetch.max.bytes=15728640
Run Code Online (Sandbox Code Playgroud)
另外,我添加fetch.message.max.bytes=15728640到/kafka/config/consumer.properties文件中。所有其他设置保持默认。
我重新启动了 kafka 服务器,但仍然出现相同的错误。
PS Kafka 版本是 1.1.0。
我收到以下错误
org.apache.kafka.common.errors.RecordTooLargeException:序列化时消息为 196773 字节,大于您使用 buffer.memory 配置配置的总内存缓冲区”
但我的生产者配置中的 buffer.memory 是 10485760
不知道为什么?谢谢
我试图通过kafka控制台生产者发送消息.但我无法输入超过4095个字符的消息.试图搜索生产者或服务器中是否存在与此相关的任何属性但无效.甚至试图搜索是否存在任何特定于OS的限制或stdin字符限制但没有找到任何内容.
请帮助通过控制台生产者发送大量消息.
在哪个文件中我可以增加Kafka的最大邮件大小?(我正在发送String,byte []的记录,当我发送770kb的byte []时,Kafka不发送消息)
对于一些较大的消息,我遇到以下错误:
kafka.common.MessageSizeTooLargeException: Message size is 1185198 bytes which exceeds the maximum configured message size of 1000012.
Run Code Online (Sandbox Code Playgroud)
因此,根据此线程增加了代理和消费者的消息大小:
fetch.message.max.bytes=10485760
replica.fetch.max.bytes=10485760
message.max.bytes=10485760
Run Code Online (Sandbox Code Playgroud)
添加到 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) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Kafka 发送 ~10Mb 的消息。我知道它的默认大小是 1Mb,但这是一个硬性限制吗?librdkafka 可以支持 >10Mb 吗?如何设置?
我们在项目中使用Kafka流状态存储,并且我们想要存储超过1MB的数据,但是我们遇到了以下异常:
该消息序列化后为 1760923 字节,大于您使用 max.request.size 配置配置的最大请求大小。
然后我点击链接添加前缀到 StreamsConfig 以启用设置默认内部主题配置并添加以下配置:
topic.max.request.size=50000000
Run Code Online (Sandbox Code Playgroud)
然后应用程序工作正常,并且当状态存储内部主题已创建时它可以正常工作,但是当 Kafka 重新启动并且状态存储主题已丢失/删除时,Kafka 流处理器需要在启动时自动创建内部状态存储主题应用程序,此时,它抛出异常,其中显示:
"Aorg.apache.kafka.streams.errors.StreamsException: Could not create topic data-msg-seq-state-store-changelog. at org.apache.kafka.streams.processor.internals.InternalTopicManager.makeReady(InternalTopicManager.java:148)....
.....
org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:805) at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:774) Caused by: org.apache.kafka.common.errors.InvalidConfigurationException: Unknown topic config name: max.request.size".
Run Code Online (Sandbox Code Playgroud)
解决方案是我们可以手动创建内部主题,但这应该不是一个好的解决方案。
你能帮我解决这个问题吗?如果我错过了任何配置?
非常感谢。
2020年6月17日更新:仍然没有解决问题。任何人都可以帮忙吗?
下面是我的生产者配置,如果您看到它们的压缩类型为 gzip ,即使我提到了压缩类型,为什么消息没有发布并且它失败了
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, edi856KafkaConfig.getBootstrapServersConfig());
props.put(ProducerConfig.RETRIES_CONFIG, edi856KafkaConfig.getRetriesConfig());
props.put(ProducerConfig.BATCH_SIZE_CONFIG, edi856KafkaConfig.getBatchSizeConfig());
props.put(ProducerConfig.LINGER_MS_CONFIG, edi856KafkaConfig.getIntegerMsConfig());
props.put(ProducerConfig.BUFFER_MEMORY_CONFIG, edi856KafkaConfig.getBufferMemoryConfig());
***props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.IntegerSerializer");
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");***
props.put(Edi856KafkaProducerConstants.SSL_PROTOCOL, edi856KafkaConfig.getSslProtocol());
props.put(Edi856KafkaProducerConstants.SECURITY_PROTOCOL, edi856KafkaConfig.getSecurityProtocol());
props.put(Edi856KafkaProducerConstants.SSL_KEYSTORE_LOCATION, edi856KafkaConfig.getSslKeystoreLocation());
props.put(Edi856KafkaProducerConstants.SSL_KEYSTORE_PASSWORD, edi856KafkaConfig.getSslKeystorePassword());
props.put(Edi856KafkaProducerConstants.SSL_TRUSTSTORE_LOCATION, edi856KafkaConfig.getSslTruststoreLocation());
props.put(Edi856KafkaProducerConstants.SSL_TRUSTSTORE_PASSWORD, edi856KafkaConfig.getSslTruststorePassword());
**props.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "gzip");**
Run Code Online (Sandbox Code Playgroud)
错误如下
org.apache.kafka.common.errors.RecordTooLargeException: The message is 1170632 bytes when serialized which is larger than the maximum request size you have configured with the max.request.size configuration.
2017-12-07_12:34:10.037 [http-nio-8080-exec-1] ERROR c.tgt.trans.producer.Edi856Producer - Exception while writing mesage to topic= '{}'
org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.RecordTooLargeException: The message is 1170632 bytes …Run Code Online (Sandbox Code Playgroud) jms apache-kafka kafka-consumer-api kafka-producer-api spring-kafka