Kafka作为一个数据中间件,并不建议对数据进行永久保存,而是以数据过期机制来对历史数据进行清理,保证消息中间件最基本的特色。
清理机制相关的配置可以分为以下三种类型。
1.数据保留相关参数
有四个参数:
(1)log.retention.ms:保留时间毫秒数,默认为空,设置为-1表示永久保留。
(2)log.retention.minutes:保留时间分钟数,默认为空。
(3)log.retention.hours:保留时间小时数,默认168小时。
(4)log.retention.bytes:保留大小,默认值为-1,表示永久保存。
2.数据清理机制参数
有三个参数
(1)log.cleaner.enable:是否开启清理机制。
(2)log.retention.check.interval.ms:保留机制检查时间间隔,毫秒计,默认值为300000,表示5分钟检查一次。
(3)log.cleanup.policy:清理策略,有两个枚举值[compact, delete],默认值为delete,可以配置两个。特别要注意的是__consumer_offsets的清理策略为compact。
3.数据清理过程参数
清理过程参数有11个
(1)log.cleaner.threads:清理线程数,默认为1。
(2)log.cleaner.io.max.bytes.per.second
(3)log.cleaner.dedupe.buffer.size
(4)log.cleaner.io.buffer.size
(5)log.cleaner.io.buffer.load.factor
(6)log.cleaner.backoff.ms
(7)log.cleaner.min.cleanable.ratio
(8)log.cleaner.delete.retention.ms
(9)log.cleaner.min.compaction.lag.ms
(10)log.cleaner.max.compaction.lag.ms