分享

Kafka的一个配置参数

yuwenge 2015-6-14 17:01:30 发表于 小知识点 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 16906


Kafka默认的消息大小为1000012,参数的名称为message.max.bytes.

[mw_shl_code=bash,true]kafka.server.KafkaConfig:
val messageMaxBytes = props.getIntInRange("message.max.bytes", 1000000 + MessageSet.LogOverhead, (0, Int.MaxValue))[/mw_shl_code]

但是对于topic来说,这个参数的名称却叫max.message.bytes,和前面的参数的名称很容易弄混。 Kafka应该将这两个参数统一成一个。
因此,如果你想对Boker统一设置的话,你需要在server.properties中设置:

[mw_shl_code=bash,true]message.max.bytes=1000000
[/mw_shl_code]


如果针对单个的topic设置,你需要:
[mw_shl_code=bash,true]bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic ABC --config max.message.bytes=1000000
[/mw_shl_code]



另外,你还需要为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
    需要重启服务器。
    尤其第二项,如果没有配置,你不会得到任何的异常信息或者警告,很难发现此类问题。
    值设的太大也不好,因为会占用太大的内存用于数据传输(消费或者复制)



已有(2)人评论

跳转到指定楼层
邓立辉 发表于 2016-4-21 11:12:58
学习学习学习学习学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条