RabbitMQ消息幂等性保障
消息幂等性保障
幂等性指一次和多次请求某一个资源,对于资源本身应该具有同样的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。
在MQ中指,消费多条相同的消息,得到与消费该消息一次相同的结果
消息幂等性保障 乐观锁机制
@Component
public class MyMessageListener {
@Autowired
RedisTemplate redisTemplate;
public void processMessage(String dataString, Message message, Channel channel) {
Boolean bol = redisTemplate.setIfAbsent(dataString,"1");
if(bol){
//消息已经被消费,无需再次消费
return;
}else{
//消息没有被消费,接下来可以正在消费
}
}
}