Kafka默认的消息大小为1000012,参数的名称为message.max.bytes.
|
|
但是对于topic来说,这个参数的名称却叫max.message.bytes,和前面的参数的名称很容易弄混。 Kafka应该将这两个参数统一成一个。
因此,如果你想对Boker统一设置的话,你需要在server.properties中设置:
|
|
如果针对单个的topic设置,你需要:
|
|
另外,你还需要为Consumer设置fetch.message.max.bytes,
为Boker设置replica.fetch.max.bytes
(至少和message.max.bytes一样,最大Int.MaxValue)
stackoverflow针对这个问题有个问答:
需要针对Boker和Consumer同时配置:
- Boker
1 replica.fetch.max.bytes
2 message.max.bytes - Consumer
3 fetch.message.max.bytes
需要重启服务器。
尤其第二项,如果没有配置,你不会得到任何的异常信息或者警告,很难发现此类问题。
值设的太大也不好,因为会占用太大的内存用于数据传输(消费或者复制)