问题本质都在于你的消费端可能出了问题,不消费或消费的太慢!更可怕的是由于积压时间太长,导致如果起初还设置了TTL后失效了怎么办?
其实数据积压的问题是架构设计不合理。
丢失的数据是通过日志找回来,如果日志也找不到了 那就没招了
一般这时,只能操作临时紧急扩容了,具体操作步骤和思路如下:
假设用rabbitmq,可设置TTL,积压超时后消息就没了,数据也就丢了。注意此时,并非数据大量积压在MQ,而是大量数据直接搞丢了。
可以采取批量重导,就是大量积压时,就直接丢弃数据,然后等高峰期后,比如半夜,将丢失的那批数据,写个程序查出来,然后重新灌入MQ,把白天丢的数据补回来。