请稍等 ...
×

采纳答案成功!

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

在消息延迟投递,二次确认,回调检查的方案下的问题

1. 首先确认下,该方案消息是不做手动 Ack 的,消费端是通过,向 CallBack 发送消息来确定是否消费成功

2. 生产者发送业务消息和延迟消息是不是不需要做 ConfirmListener 与 ReturnListener。

假想场景,生产者发送业务消息到 Broker 失败,延迟消息发送成功,ConfirmLisener 监听,业务消息进行重发。CallBack 收到延迟消息后会调用 RPC 进行重试补偿,这样看来,ConfirmListener 中进行的重发是不是多余的。(明确消费端会做幂等处理)

在上面假想的基础上,延迟消息应该要做 ConfirmListener,不然延迟消息发送失败,不重发,CallBack 就无法进行重试了。

3. 最后问一下老师,生成者发送的延迟消息,是程序进行延时发送,还是同时将一个消息发送到一个延时队列中。

正在回答

1回答


2次投递就是利用延长插件去做的,可以中间'设置一个短暂的时间间隔,当然如果有必要也要做confirm,只不过不存储和更新消息记录表了,少了一次持久化,提升性能,做一个优化。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_哈之仆_0 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-08-29 10:55:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信