Apache Kafka 在哪​​里设置最大消息大小?

Posted

技术标签:

【中文标题】Apache Kafka 在哪​​里设置最大消息大小?【英文标题】:Where to set maximum message size in Apache Kafka? 【发布时间】:2018-10-16 21:02:34 【问题描述】:

我可以在哪个文件中增加 Kafka 的最大消息大小? (我正在发送String、byte[]的记录,当我发送770kb的byte[]时,Kafka不发送消息)

【问题讨论】:

这个问答可能完全解释了它:***.com/questions/21020347/… - 它适用于 Kafka 0.8,但我相信这对于较新版本的 Kafka 仍然是正确的。让我们知道这是否有效,然后我可以将其标记为重复。 (这很好,它只是将其他有同样问题的人指向正确的问题) @ErwinBolwidt 我在生产者中将replica.fetch.max.bytes 设置为1000000,将max.request.size 设置为1000000,在消费者中将max.partition.fetch.bytes 设置为1000000,但消息仍然不是发送 还有message.max.bytes ? 重复***.com/questions/21020347/… How can I send large messages with Kafka (over 15MB)?的可能重复 【参考方案1】:

在 kafka 0.11.0 中需要设置以下四个配置选项

代理配置选项 (details):

    message.max.bytes - Kafka 允许的最大记录批量大小。

    replica.fetch.max.bytes - 尝试为每个分区获取的消息字节数。

生产者配置选项(details):

    max.request.size - 请求的最大大小(以字节为单位)。建议将此值与 (message.max.bytes) 匹配。

消费者配置选项(details):

    max.partition.fetch.bytes - 服务器返回的每个分区的最大字节数。应该大于 max.message.size 以便消费者可以读取代理发送的最大消息。

【讨论】:

以上是关于Apache Kafka 在哪​​里设置最大消息大小?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Kafka 处理大消息

实时构建:Apache Kafka的大数据消息传递,Part 2

专为实时而构建:使用Apache Kafka进行大数据消息传递 第2部分

kafka groupid在哪

实时构建:Apache Kafka的大数据消息传递,Part 1

专为实时而构建:使用Apache Kafka进行大数据消息传递,第1部分