消息队列出现消息重复的原因有多种
消息队列并不能保证消息的唯一,所以我们只能在业务层面上做这些控制
1.全局唯一id,比如通过消息队列来生成订单,那订单号就是唯一的,在进行插入数据库之前先判断是否这个订单号是否已经存在了,如果已经存在了,说明已经消费过这条消息了,直接丢弃
2.消息确认表,将消息标示号存入redis或者数据库,在进行消费之前进行一个判断
总之解决的方案很多,要看具体业务场景
消息队列出现消息重复的原因有多种
消息队列并不能保证消息的唯一,所以我们只能在业务层面上做这些控制
1.全局唯一id,比如通过消息队列来生成订单,那订单号就是唯一的,在进行插入数据库之前先判断是否这个订单号是否已经存在了,如果已经存在了,说明已经消费过这条消息了,直接丢弃
2.消息确认表,将消息标示号存入redis或者数据库,在进行消费之前进行一个判断
总之解决的方案很多,要看具体业务场景