码迷,mamicode.com
首页 > 其他好文 > 详细

MQ在高并发环境下,如果队列满了,如何防止消息丢失?

时间:2019-02-16 13:55:47      阅读:1111      评论:0      收藏:0      [点我收藏+]

标签:消息   队列   好的   rabbit   text   ima   老师   数据库   nbsp   

1、为什么MQ能解决高并发环境下的消息堆积问题?

技术图片

MQ消息如果堆积,消费者不会立马消费所有的消息,不具有实时性,所以可以解决高并发的问题。

性能比较好的消息中间件:Kafka、RabbitMQ,RocketMQ.

2、什么情况下会产生消息丢失的现象?

消息队列满了的情况下。

3、如何解决消息丢失的问题?

(1)生产者可以采用重试机制。因为消费者会不停的消费消息,可以重试将消息放入队列。

如果还是不行,可以将消息记录到数据库,后期做补偿。(不太推荐,不方便)

(2)死信队列,可以理解为备胎。(推荐使用)

即在消息过期,队列满了,消息被拒绝的时候,都可以扔给死信队列。

如果出现死信队列和普通队列都满的情况,此时考虑消费者消费能力不足,可以对消费者开多线程进行处理。

技术图片

最后:谢谢蚂蚁课堂老师的讲解。

 

MQ在高并发环境下,如果队列满了,如何防止消息丢失?

标签:消息   队列   好的   rabbit   text   ima   老师   数据库   nbsp   

原文地址:https://www.cnblogs.com/fengli9998/p/10387323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!