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

相关推荐
让我上个超影吧2 天前
消息队列——RabbitMQ(高级)
java·rabbitmq
塔中妖2 天前
Windows 安装 RabbitMQ 详细教程(含 Erlang 环境配置)
windows·rabbitmq·erlang
Ronin3052 天前
信道管理模块和异步线程模块
开发语言·c++·rabbitmq·异步线程·信道管理
2501_941800883 天前
云计算与边缘计算:协同合作助力智慧城市建设
rabbitmq
AlickLbc4 天前
RabbitMQ安装记录
分布式·rabbitmq
pursue.dreams4 天前
Windows 安装 RabbitMQ 保姆级教程
windows·rabbitmq
切糕师学AI5 天前
RabbitMQ 是什么?
微服务·消息队列·rabbitmq
Anastasiozzzz5 天前
解决 RabbitMQ 的可靠性投递与消息重复消费问题思路
分布式·rabbitmq
Ronin3055 天前
订阅者模块
rabbitmq
fchampion6 天前
最终一致性
java·spring·rabbitmq·github·mvc