小编Chr*_*tel的帖子

启用压缩后的 Kafka 消息大小

我对 Kafka 2.6.0 中的消息大小配置有点困惑。但我们还是先讲个故事吧:

我们使用由 3 个节点组成的 Kafka 集群。到目前为止,消息的标准配置已经完成。“zstd 压缩”已激活。

相关broker配置很简单:

compression.type=zstd
Run Code Online (Sandbox Code Playgroud)

此时生产者配置也很简单:

compression.type=zstd
Run Code Online (Sandbox Code Playgroud)

现在我们想将 8 MB 的消息放入特定主题中。该数据的压缩大小仅为 200 kbyte。

如果我将此数据放入主题中,则会发生以下错误:

sudo /opt/kafka/bin/kafka-console-producer.sh --topic XXX --producer.config /opt/kafka/config/admin-ssl.properties --broker-list broker < kafka/new\ 2.txt

[2020-11-05 13:43:34,500] ERROR Error when sending message to topic XXX with key: null, value: 8722456 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.RecordTooLargeException: The message is 8722544 bytes when serialized which is larger than 1048576, which is the value of the max.request.size configuration.
Run Code Online (Sandbox Code Playgroud)

所以我改变了生产者配置,如下所示:

compression.type=zstd
max.request.size=10485760
Run Code Online (Sandbox Code Playgroud)

现在生产者接受更大的消息。但它仍然不起作用:

sudo /opt/kafka/bin/kafka-console-producer.sh --topic XXX …
Run Code Online (Sandbox Code Playgroud)

apache-kafka kafka-producer-api

5
推荐指数
1
解决办法
3424
查看次数

标签 统计

apache-kafka ×1

kafka-producer-api ×1