Kafka大消息配置支持Spring引导应用程序生产者使用者

时间:2018-11-28 09:24:37

标签: apache-kafka

当我尝试通过Kafka制作人进行发布时 在Spring Boot应用程序中,出现RecordTooLargeException错误。

错误是:

  

org.apache.kafka.common.errors.RecordTooLargeException:序列化时,消息为1235934字节,大于您使用max.request.size配置配置的最大请求大小。

我阅读了有关此问题的其他讨论,但没有对此提供任何适当的支持,因为我还必须发布以及使用来自客户端的消息。

请通过简短的配置步骤来帮助我。

1 个答案:

答案 0 :(得分:0)

关于Kafka的妙处在于,它具有出色的异常消息,几乎可以自我解释。基本上是说您的信息太大(我相信您是自己总结得出的)。

如果您在表中的docs for producer config搜索中搜索max.request.size以获得解释,则会显示:

  

请求的最大大小(以字节为单位)。此设置将限制   生产者将在单个请求中发送给的记录批数   避免发送大量请求。这实际上也是对   最大记录批次大小。请注意,服务器具有自己的上限   记录可能与此不同的批次大小。

您可以在生产者配置中配置此值,如下所示:

properties.put(ProducerConfig.MAX_REQUEST_SIZE_CONFIG, "value-in-bytes");

但是,对于90%的用例,默认值非常好。如果您可以避免发送这么大的消息,或者尝试压缩消息(这在讨论吞吐量时会很奇怪),例如:

properties.setProperty(ProducerConfig.COMPRESSION_TYPE_CONFIG, "snappy");

还有2种其他压缩类型,但是这种压缩类型来自Google,效率很高。除了压缩,您还可以调整其他两个值以获得更好的性能(batch.sizelinger.ms),但是您必须测试用例。