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

相关推荐
debug骑士1 小时前
面向云原生微服务的Go高并发架构实践与性能优化工程化经验分享案例研究
rabbitmq
2501_941802482 小时前
Java高性能微服务架构与Spring Boot实战分享:分布式服务设计、负载均衡与优化经验
rabbitmq
2501_941147427 小时前
高并发日志系统ELK/Fluentd/ClickHouse在互联网优化实践经验分享
rabbitmq
JSON_L14 小时前
Fastadmin 使用RabbitMQ队列
rabbitmq·php·fastadmin
2501_9412256819 小时前
Go语言高性能API网关设计与gRPC实战分享:微服务接口优化与负载均衡经验
rabbitmq
源码梦想家19 小时前
面向未来软件工程实践:基于Go语言的高并发架构设计思考与经验分享案例分析研究方法探讨
rabbitmq
2501_9411477120 小时前
高并发CDN与边缘计算在互联网系统优化实践经验分享
rabbitmq
2501_9411437321 小时前
分布式日志系统与可观测性在高并发互联网系统架构优化与实践分享
rabbitmq
debug骑士21 小时前
面向安全与高性能微服务的Rust异步架构设计与工程化实践经验分享探索研究
rabbitmq
2501_941801761 天前
人工智能与物联网:智能家居生态的崛起与未来
rabbitmq