业务上某些topic存在慢消费,导致ledger log文件无法及时GC,最终磁盘占用率达到95%,broker进入readonly状态。在业务上暂时无法及时修复时,配置namespace 级别TTL以及backlog quota策略,如下:
backlogQuotaCheckEnable=true
preciseTimeBaseBacklogQuotaCheck=true
backlogQuotaCheckIntervalInSeconds=60
backlogQuotaDefaultLimitSecond=900
backlogQuotaDefaultRetentionPolicy=consumer_backlog_eviction
ttlDurationDefaultInSecond=900
bookie配置中gcWaitTime=600000
现象:业务消息生产切入pulsar集群,观测到ledger所在磁盘占用存在下降趋势,但很快就持续上升。直到业务消息切出pulsar集群,下一个gc周期开始大量回收ledger log,磁盘占用率恢复正常。详见下图:
图中磁盘占用率拐点都是切出消息生产触发。
不排除业务上存在消费数据后丢失ack的情况。需要一个保证集群可用性的方案