请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

消息幂等性保障问题

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

https://img1.sycdn.imooc.com//szimg/5b8de735000184a014330643.jpg

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

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

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

正在回答

1回答

阿神 2018-09-04 16:42:44

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

0 回复 有任何疑惑可以回复我~
  • 阿神 #1
    比如消费失败,我要重新消费,那就再创建一条消息进行重试,主要ID生产的规则不一样就行了,rabbit都是单次投递的,就算重试,消息ID不一样就可以,但是业务ID是同一个
    回复 有任何疑惑可以回复我~ 2018-09-04 16:45:30
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信