消息幂等性保障问题

来源:7-6 消息幂等性保障-消息路由规则架构设计思路

qq_哈之仆_0

2018-09-04

在 7-6 章节中,视频中说消息在从 Broker 到消费者之间的时候,做消息入库,利用主键排除重复消息。

http://img.mukewang.com/szimg/5b8de735000184a014330643.jpg

现在有一个问题,按照上图,消息是先入库,在到消费端,如果消费端消费失败,进行重试。

1. 后面重试的消息在 ID 规则路由组件哪里就会发现消息 ID 已经存在,会被排除掉,不会进入到消费端重试,重试就无效了。我猜测是不是消息入库的时候不光比较消息 ID 是否存在,还应该有一个消息状态,根据状态来确定是否让消费端来消费这个消息。

2. 这个 ID 规则路由组件是不是可以用 AOP 实现。

写回答

1回答

阿神

2018-09-04

消费端消费失败,重试策略是自己定义的

0
1
阿神
比如消费失败,我要重新消费,那就再创建一条消息进行重试,主要ID生产的规则不一样就行了,rabbit都是单次投递的,就算重试,消息ID不一样就可以,但是业务ID是同一个
2018-09-04
共1条回复

RabbitMQ精讲 从0到1驾驭RabbitMQ应用与设计

从0到1,全面深入掌握RabbitMQ消息中间件技术

1460 学习 · 443 问题

查看课程