由于kafka接收了来自端口发送的数据,导致kafka经常报错数据量过大,存储不了数据无法继续接收。
kafka将消息存储在磁盘中,kafka中的每一个分区都对应一个日志文件,进而又细分为多个日志分段文件。
日志删除
log.cleanup.policy=delete
启用删除策略
log.cleanup.policy=delete
#专门的日志删除任务来周期性检测和删除不符合保留条件的日志分段文件,默认300000ms,5分钟
log.retention.check.interval.ms=300000
#可配置以下两个策略:
#1、清理超过指定时间清理:
log.retention.hours=16
#2、超过指定大小后,删除旧的消息;默认值为-1,表示无穷大;
log.retention.bytes=1073741824
#注意:
#log.retention.bytes和log.retention.hours任意一个达到要求,都会执行删除,会被topic创建时的指定参数覆盖
日志压缩
log.cleanup.policy=compact
#1、是否开启日志压缩
log.cleaner.enable=true
#2、启用日志压缩策略
log.cleanup.policy=compact
压缩后offset可能不存在,那么根据消费者偏移量如何读取数据,比如consumer当前消费offset为5,而压缩后的offset不存在5,那么消费者就会消费比当前offset大的消息,上图所示就是offset-6。