1、为什么MQ能解决高并发环境下的消息堆积问题?
MQ消息如果堆积,消费者不会立马消费所有的消息,不具有实时性,所以可以解决高并发的问题。
性能比较好的消息中间件:Kafka、RabbitMQ,RocketMQ.
2、什么情况下会产生消息丢失的现象?
消息队列满了的情况下。
3、如何解决消息丢失的问题?
(1)生产者可以采用重试机制。因为消费者会不停的消费消息,可以重试将消息放入队列。
如果还是不行,可以将消息记录到数据库,后期做补偿。(不太推荐,不方便)
(2)死信队列,可以理解为备胎。(推荐使用)
即在消息过期,队列满了,消息被拒绝的时候,都可以扔给死信队列。
如果出现死信队列和普通队列都满的情况,此时考虑消费者消费能力不足,可以对消费者开多线程进行处理。
最后:谢谢蚂蚁课堂老师的讲解。
标签:队列,并发,死信,MQ,消息,丢失 来源: https://www.cnblogs.com/fengli9998/p/10387323.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。