RabbitMQ-14-消息过期怎么办
消息过期怎么办
当大量堆积的消息堆积后,默认是消息进入队列后,一直会存在,直到消费掉。rabbitmq的压力会很大,如果rabbitmq因为消息积压而导致崩溃。 业务会受到影响,甚至瘫痪。
RabbitMQ解决方案:
消息过期时间(TTL=Time to Live),防止消息大量堆积。
TTL应该大于服务的平均启动时间。防止由于重启消息过期后被丢弃。如果TTL设置3秒,但是我们的应用启动要8秒,那重启一次,数据就过期了。
TTL大于业务高峰期。比如秒杀这种场景,可以设置30-50分钟。
消息(TTL)
单条消息的过期时间。
队列(TTL)
进入这个队列的所有消息都有一个固定过期时间,队列中所有消息的过期时间。 队列过期时间(Expire)
在发送的时候,设置消息的过期时间。
1 | func (ch *Channel) Publish(exchange, key string, mandatory, immediate bool, msg Publishing) |
RabbitMQ该如何学习
计算机学科是一个要求动手能力很强的学科,通过实战,用实际项目,把知识牢牢掌握住。


添加微信 | 公众号更多内容 |
---|---|
![]() |
![]() |
本博客所发布的内容,部分内容来源于网络,版权归原作者所有,如有侵权,请联系删除。转载请注明来自 面向加薪学习!