GitHub user RongtongJin edited a comment on the discussion: 关于过期文件删除问题

> 对于长时间下线然后重新上线的Broker,因为CommitLog过期删除策略,始终会保存最后一个文件,如果当前Broker的phyOffset小于主节点的minOffset,这个时候会始终无法进行同步。通常解决办法是人工手动清理掉store文件再重启,我的疑问是能不能在Broker启动load的时候,先手动的检查一下CommitLog的最后一个文件,如果已经过期,那么就主动清空commitlog和consumeQueue。或者说是在主从同步时,发现主传过来的offset比从Broker当前的phyOffset要大,则主动设置同步位点为0(高危操作)。

@echooymxq 
设计的时候是考虑过类似解法的,但考虑系统自动清空commitlog和consumeQueue是高危操作,如果用户不想删除,但上线后MQ自动清空数据结果会很严重,所以最后决定这种场景就是需要人工介入的。

GitHub link: 
https://github.com/apache/rocketmq/discussions/6265#discussioncomment-5238800

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@rocketmq.apache.org

Reply via email to