MQ服务异步通信
服务异步通信
MQ的一些常见问题
- 消息可靠性问题:如何确保发送的消息至少被消费一次
- 延迟消息问题:如何实现延迟消息投递
- 高可用问题:如何避免单点的MQ故障而导致的不可用问题
- 消息堆积问题:如何解决数百万消息堆积,无法及时消费的问题
消息可靠性问题
消息从生产者发送到exchange,再到queue,再到消费者,有哪些导致消息丢失的可能性?
- 发送时丢失:
- 生产者发送的消息未送达
exchange - 消息到达exchange后未到达
queue
- 生产者发送的消息未送达
MQ宕机,queue将消息丢失consumer接收到消息后未消费就宕机
一 消息可靠性
1.生产者消息确认
生产者确认机制
RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后,会返回一个结果给发送者,表示消息是否处理成功。结果有两种请求:
2.消息持久化
3.消费者消息确认
4.消费失败重试机制
二 死信交换机
三 惰性队列
四 MQ集群
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hao的博客空间!



