分布式消息服务RabbitMQ版-通过消息幂等实现消息去重:方案概述
方案概述
在RabbitMQ的业务处理过程中,如果消息重发了多次,消费者端对该重复消息消费多次与消费一次的结果是相同的,多次消费并没有对业务产生负面影响,那么这个消息处理过程是幂等的。消息幂等保证了无论消息被重复投递多少次,最终的处理结果都是一致的,避免了因消息重复而对业务产生影响。
例如在支付场景下,用户购买商品后进行支付,由于网络不稳定导致用户收到多次扣款请求,导致重复扣款。但实际上扣款业务只应进行一次,商家也只应产生一条订单流水。这时候使用消息幂等就可以避免这个问题。
在实际应用中,导致消息重复的原因有网络闪断、客户端故障等,且可能发生在消息生产阶段,也可能发生在消息消费阶段。因此,可以将消息重复的场景分为以下两类:
- 分布式消息服务优势_分布式消息服务_消息队列-华为云
- RabbitMQ如何保证消息的可靠性_分布式消息系统_分布式消息RabbitMQ-华为云
- 分布式消息服务有哪些_分布式消息服务哪个好_分布式消息-华为云
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- RocketMQ是什么_RocketMQ介绍_分布式消息服务RocketMQ版
- kafka是什么_kafka介绍_分布式消息服务Kafka版
- 分布式消息中间件的作用_分布式消息中间件_分布式消息-华为云
- 为什么要使用RabbitMQ_RabbitMQ如何实现高可用性_分布式消息-华为云
- Kafka与其他消息队列的对比_什么是Kafka_分布式消息系统-华为云
- 分布式消息队列是什么_分布式消息队列好处_消息队列-华为云