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



当我试图通过Kafka生产者发布时在Spring引导应用程序中,我收到了RecordTooLargeException的错误。

错误为:

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

我阅读了关于这个问题的其他讨论,但没有得到任何合适的支持,因为我还必须发布并使用客户端的消息。

请帮我简单介绍一下配置步骤。

Kafka的优点是它有非常好的异常消息,这些消息几乎是不言自明的。这基本上是说你的信息太大了(我相信这是你自己得出的结论(。

如果您查看表中max.request.size的生产者配置搜索文档以获得解释,它会显示:

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

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

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

然而,默认值对于90%的用例来说非常好。如果您可以避免发送如此大的消息,或者尝试压缩消息(这在谈到吞吐量时会产生奇迹(,比如:

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

还有另外两种压缩类型,但这一种来自谷歌,非常有效。除了压缩,您还可以调整另外两个值以获得更好的性能(batch.sizelinger.ms(,但您必须针对您的用例进行测试。

相关内容

最新更新