除非topic是可变的,kafka创建topic一般比较固化,客户端很少去控制topic属性,另外,大多数属性取自
broker中默认设置的属性
cleanup.policy
日志清理的策略,delete(删除)和compact(压缩)两种
delete.retention.ms
对压缩的日志保留的最长时间,注意log.retention.hours控制的是未压缩的日志数据的留存时间
flush.messages
消息达到多少条时,强制fsync写入磁盘,默认使用log.flush.interval.messages设置的值,不建议修改
flush.ms
等待多少毫秒后强制fsync写入磁盘,默认使用log.flush.interval.ms的设置值,不建议修改
以上两个flush在上一篇结尾单独讲过一次,比较好理解
retention.bytes/retention.ms
这个是设置日志存留多久,达到这个阈值(超过时间或超过大小)的日志会被cleanup.policy设置的策略做处理
message.max.bytes
这里是设置的一个批次的消息的最大值,不是单条消息的。
broker中的replica.fetch.max.bytes,其值必须大于message.max.bytes,否则消息复制的时候会失败
提前说一下,这个配置值,需要结合consumer配置中的message.max.bytes一起分析后设置,一般消费者设置要稍大于
topic里设置的这个值
min.insync.replicas
这个配置项在broker那篇已经讲过,非常重要的一个参数
segment.bytes/segment.ms
规定segment文件的生命周期,达到指定大小或保存了指定时间的segment会进行删除或压缩操作