参考答案
假设我们用的是RabbitMQ,RabbitMQ是可以设置过期时间的,就是TTL。
如果消息在queue中积压超过一定的时间,就会被RabbitMQ给清理掉,导致大量的数据直接丢失。
对于大量消息丢失的这种情况,我们可以采取批量重导的方式,即大量积压时,直接丢弃数据,等过了高峰期以后,写个临时程序,将丢失的那批数据逐一查找出来,然后重新灌入MQ里面,补回丢失的数据。
假设1万个订单积压在MQ里面没有处理,其中1000个订单都丢了,只能手动写程序,将丢失的1000个订单给查找到,手动发到MQ里去再补一次。
以上,是MQ面试题【如何解决消息队列的延时,以及过期失效问题】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—