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

相关推荐
笨蛋不要掉眼泪5 小时前
RabbitMQ消息队列:SpringAMQP
java·分布式·rabbitmq
笨蛋不要掉眼泪7 小时前
RabbitMQ消息队列:交换机机制
java·分布式·rabbitmq
重庆小透明19 小时前
带你从不同视角了解三大MQ
java·学习·spring·kafka·rabbitmq·rocketmq
晚安code1 天前
RabbitMQ消息可靠性:发送确认、消费者ACK与SpringAMQP实战
rabbitmq
L1624761 天前
消息队列(MQ)总览:RabbitMQ & Kafka 完整手册
分布式·kafka·rabbitmq
刘小八1 天前
RabbitMQ 消息积压排查:从指标定位到消费者扩容
分布式·rabbitmq
小罗水2 天前
第9章 RabbitMQ 消息队列与索引任务
分布式·rabbitmq
乱七八糟的屋子3 天前
AMQP C++ 超详细实战教程(amqp-cpp 开源库从零入门到生产落地)
c++·rabbitmq·任务队列·amqp·流量削峰·c++服务端异步解耦·分布式消息通信
余—笙4 天前
Docker安装rabbitmq并安装延迟队列插件
docker·容器·rabbitmq
稚南城才子,乌衣巷风流7 天前
RabbitMQ 消息队列:从入门到实战
分布式·rabbitmq