赞
踩
一、幂等性是什么?
在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。简单来说就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的。
二、什么情况下会出现重复消费?
为了保证消息必达性,MQ使用了消息超时、重传、确认机制,使得消息可能被重复发送,从而对业务产生影响。
1、生产者已把消息发送到mq,在mq给生产者返回ack的时候网络中断,故生产者未收到确定信息,生产者认为消息未发送成功,但实际情况是,mq已成功接收到了消息,在网络重连后,生产者会重新发送刚才的消息,造成mq接收了重复的消息。
2、消费者在消费mq中的消息时,mq已把消息发送给消费者,消费者在给mq返回ack时网络中断,故mq未收到确认信息,该条消息会重新发给其他的消费者,或者在网络重连后再次发送给该消费者,但实际上该消费者已成功消费了该条消息,造成消费者消费了重复的消息。
三、防重复消息幂等性解决方案
1、生产者重复发消息MQ幂等性设计
MQ
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。