broker级别的参数可以由topic级别的覆写,不是所有的broker参数在topic级别都有对应值
覆写方法
可以在创建或创建后由--config修改
创建时
> bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 1
--replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1
创建后
bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic my-topic
--config max.message.bytes=128000
删除
bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic my-topic
--deleteConfig max.message.bytes
参数
topic level broker level
cleanup.policy log.cleanup.policy 删除策略(delete,compact)
delete.retention.ms log.cleaner.delete.retention.ms 精简模式下保留log的时间
flush.messages log.flush.interval.messages 多少条message flush to disk
flush.ms log.flush.interval.ms 同步到磁盘的时间间隔
index.interval.bytes log.index.interval.bytes 读取时需要一定空间保存offset信息
max.message.bytes message.max.bytes 最大可接受的message大小,对应的调整consumer端在数
min.cleanable.dirty.ratio log.cleaner.min.cleanable.ratio 精简模式下,清理log的阀值
min.insync.replicas min.insync.replicas 当request.required.acks =-1时 insync列表中的replica确认写成功的最小数
同时讲一下request.required.acks这个参数它分别三个不同的值
0 代表不等待写确认即返回
1 代表只需要leader确认
-1 代表需要insync中的所有replica确认
retention.bytes log.retention.bytes 超过该值大小的日志将删除
retention.ms log.retention.minutes 超过该时间阀值的日志将删除
segment.bytes log.segment.bytes segment文件最大值
segment.index.bytes log.index.size.max.bytes index文件最大值
segment.ms log.roll.hours 创建新文件的时间