美文网首页
可靠性投递

可靠性投递

作者: 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

相关文章

  • RabbitMQ消息可靠性投递分析

    1、消息可靠性投递分析 由RabbitMQ消息发送的过程,我们可以知道如果要保证消息的可靠性投递,必须要下保证如下...

  • 可靠性投递

    消息落库重发 Step 1:业务数据和消息数据分别入库,标记消息发送中、记录消息超时时间Step 2:发送消息St...

  • rabbitMQ可靠性投递

    可靠性投递 关于消息的可靠性投递,从以下几个方面来着手: 保障消息成功发出; 保障MQ成功接收; 发送方接收到MQ...

  • RabbitMQ学习(四)可靠性投递和confirm机制

    RMQ可靠性投递 一.什么是RMQ的可靠性投递 1.保障消息的成功发出2.保障MQ节点的成功接收3.发送端收到MQ...

  • RabbitMQ 消息可靠性投递 消息幂等性 有序性

    消息可靠性投递 可靠性投递需满足四个条件: 1.保障消息的成功发出 2.保障MQ节点的成功接收 3.发送端收到MQ...

  • rabbitmq 可靠性投递(四)之实现可靠性投递

    前言 在之前介绍了可靠性投递方案和项目搭建::https://juejin.im/post/5c3f43dae51...

  • RabbitMQ 可靠性投递

    起因:在实际项目开发过程中,需要使用RabbitMQ来实现消息队列的功能,但仅仅实现功能之后并不能对自己满足,既然...

  • RabbitMQ消息中间件从入门到高级(二)

    一、消息如何保证 100% 的投递成功? 投递主要针对生产端,什么是生产端的可靠性投递? 保障消息成功的发出去 保...

  • RabbitMQ高级特性

    消息如何保障100%的投递成功? 什么是生产端的可靠性投递? 1、保障消息的成功发出 2、保障MQ节点的成功接收 ...

  • 消息队列若干问题

    1Questions 消息的投递和消费都有可能丢失,如何保证消息的可靠性(不丢失)? 同一个消息被投递多次,如何处...

网友评论

      本文标题:可靠性投递

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