请稍等 ...
×

采纳答案成功!

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

多线程异步处理消息持久化、消息ack以及分发疑问

老师,如果将消息持久化、消息ack以及分发提交给线程池异步处理,如果线程在处理过程中发生异常了,这三个步骤没有完整的执行完,不就会导致消息要么没持久化,要么接收端没收到消息,这种特殊情况怎么处理?

正在回答 回答被采纳积分+3

1回答

conan老师 2023-06-11 18:08:34

我们异步线程的顺序是:1.发一个mq消息。2.存离线 3.ack给发送端 4.发送给自己的同步端 5发给对方

任何一步失败,发送端或者接收端都会少一个ack,少一个ack就会触发重发。

0 回复 有任何疑惑可以回复我~
  • 提问者 我爱PQ #1
    老师,如果在 第五步失败了,发送端开始重发,会不会导致发送端 的其他同步端出现重复消息了?
    回复 有任何疑惑可以回复我~ 2023-06-14 20:11:49
  • sdk会去重
    回复 有任何疑惑可以回复我~ 2023-06-14 20:28:20
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信