美文网首页
可靠性投递

可靠性投递

作者: simon_kin | 来源:发表于2021-02-07 11:21 被阅读0次

    消息落库重发

    Step 1:业务数据和消息数据分别入库,标记消息发送中、记录消息超时时间
    Step 2:发送消息
    Step3、4:异步监听MQ应答;响应成功,则标记消息发送成功;失败则,标记消息发送失败。
    Step5、6、7:取出未发送成功(status:0)且响应超时的消息,重新发送。若发送次数大于3,则标记位失败消息,通知人工处理。

    mq1.png

    延迟投递

    Step1:先将业务数据入库(补偿备用),然后将消息发送到MQ
    Step2:再发送一条延时消息,这里需要设置延时时间,比如5分钟后投递
    Step3:消费者监听队列,收到消息并进行处理
    Step4:处理完成之后发送一个Confirm消息到MQ中(这里的消息不是ACK)
    Step5:CallBackService监听收到消费者的Confirm消息,对消息做持久化存储到MsgDB中
    Step6:5分钟后CallBackService监听到延时消息后,去检查DB中是否存在消息,如果存在则不需要做任何处理,如果不存在,则通过RPC通信通知生成者重新发送消息

    mq2.png

    相关文章

      网友评论

          本文标题:可靠性投递

          本文链接:https://www.haomeiwen.com/subject/zczatltx.html