场景:
- 假如你的消费者出故障了,而生产者还是不停的往mq中写入数据,积压了几百万甚至上千万数据了,磁盘都快满了,怎么解决?
- -申请一批机器,修改消费者代码,不做任何处理,把消息写入新部署的中,等消费者bug处理好消费.
- -,修改消费者代码,消费mq数据,不做任何处理直接丢弃,后面手动写程序找出丢失的数据,手动重新发送到mq中.
- 当你的消费者处理完bug重新上线,你的每个消费者每秒能处理1000条数据,有3个消费者则每秒能处理3000条数据,一分钟则是18万条数据,那么处理完这上千万的数据也需要1个多小时了,如何能快速消费积压的数据?
- -假设原先有3个消费者,对应则是有3个partition,此时新建一个topic,这个topic中的partition是原来十倍,原先的三个消费者修改代码,将消费到的数据不在任何处理,直接写入新topic中,然后向公司申请一批机器,对应30个partition部署30个消费者去处理数据.原先3个消费者需要一个小时左右处理完积压的数据,此时30个零时消费者则10左右就能处理完积压的数据.
- mq设置了过期时间,导致积压的大量数据搞丢了,怎么办?
- -正常情况下mq是不允许设置过期时间的,这样会很坑,如果遇到这种情况,只能手动写程序找出丢失的数据,手动重新发送到mq中.