RabbitMQ问题

如何实现顺序消费?

消息放入到同一个队列中消费

如何解决消息不丢失?

方案:

如上图:消息丢失有三种情况,解决了以上三种情况就解决了丢失的问题

1、丢失1--->消息在到达交换机的时候;解决:MQ需要开启确认模式

2、丢失2--->在MQ内容丢失的问题;解决:开启消息持久化(交换机设置,队列设置)

3、丢失3--->消息抵达消费者的时候;解决:消费者开始手动ACK

如何解决消费积压?

1、多队列,根据不同消息类型放在不同队列

2、多消费者,根据消息的类型和优先级分配消费者

3、设置TTL,不能无限制阻塞,设置过期时间

如何解决消息重复?

原因:

1、生产者发送消息到MQ,但是由于网络波动,MQ没有回复,生产者又重新发送了一次

2、MQ消息到达消费者时,由于网络波动,没有回复,MQ又重新发送了一次

方案:幂等性

1、消息传递时,需要携带一个唯一ID,将此ID存到redis中

2、接收到消息,先去redis中查,如果有则直接丢弃此消息,如果没有正常消费,将该ID存redis设置TTL

相关推荐
standovon11 小时前
RabbitMQ 的介绍与使用
分布式·rabbitmq·ruby
0xDevNull17 小时前
消息中间件:从起源到选型指南
kafka·rabbitmq
少许极端2 天前
消息队列-RabbitMQ(1)
分布式·消息队列·rabbitmq
&&月弥2 天前
三大开源消息队列(Kafka、RabbitMQ、RocketMQ)使用教程
kafka·开源·rabbitmq
江沉晚呤时3 天前
.NET 9 快速上手 RabbitMQ 直连交换机:高效消息传递实战指南
开发语言·分布式·后端·rabbitmq·.net·ruby
⑩-4 天前
RabbitMQ 架构和工作原理?RabbitMQ 延迟队列如何实现?
java·分布式·架构·rabbitmq
七夜zippoe4 天前
消息队列选型:Kafka vs RabbitMQ vs Redis 深度对比
redis·python·kafka·消息队列·rabbitmq
chikaaa5 天前
RabbitMQ 核心机制总结笔记
java·笔记·rabbitmq·java-rabbitmq
猹叉叉(学习版)5 天前
【ASP.NET CORE】 14. RabbitMQ、洋葱架构
笔记·后端·架构·c#·rabbitmq·asp.net·.netcore
⑩-5 天前
为什么要用消息队列?使用场景?
java·rabbitmq