当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选面试题-如何保证消息不被重复消费

金三银四精选面试题-如何保证消息不被重复消费

来源:图灵教育
时间:2023-11-27 10:16:10
 

如何保证消息不被重复消费

MQ能保证的是消息至少保证消息能被消费者成功消费一次

正是因为这种特性,MQ就很难避免消息重复消费问题

 

 

本身消息投递的可靠性要比我们重复消费的优先级更高,所以一般防重问题都是交给我们应用本身去实现的。这也就是为什么RocketMQ文档中强调:消费逻辑需要自我实现幂等。

其实重复消费不可怕,可怕的是你没考虑到重复消费之后,怎么保证幂等性。

幂等性是指同一个操作在多次执行中产生的结果是相同的。可以通过在应用程序中设计幂等性来解决MQ重复消费问题。例如,为每个消息分配一个唯一标识符,应用程序在消费消息时检查该消息是否已经被处理过,如果已经处理过则直接忽略。

真实的业务场景各式各样,大家可以举一反三,在实际应用中需要结合具体的业务来看。