MQ消息如何保障100%的投递成功?

什么是生产端的可靠性投递?

  • 保障消息的成功发出
  • 保障MQ节点的成功接收
  • 发送端收到MQ节点(Brker)确认应答
  • 完善的消息进行补偿机制

互联网大厂的解决方案:

1.消息落库,对消息状态进行打标

在这里插入图片描述

第一步,将业务、消息入库,如果第一步失败直接快速失败
第二步,将消息发送出去
第三步,将收到消息的应答(confirm)返回给生产端
第四步,将消息状态从0->更新成1(表示发送成功)
第五步,分布式定时任务获取消息状态为0的消息
第六步,重新投递回到第二步
第七步,如果重试次数大于3,那么将消息状态从0->更新成2(表示失败)

缺点:在高并发场景下数据库IO太频繁。

2.消息的延迟投递,做二次确认,回调检查

在这里插入图片描述
第一步,业务入库,第一次消息的发送
第二步,延迟消息投递检查
第三步,消费端监听处理消息
第四步,返回confirm确认消息
第五步,监听确认消息,Callback服务接收到则存储到数据库
第六步,Check Detail接收到延迟消息投递,Callback服务检查数据库是否存储了该消息,没有则重发消息,回到第一步

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿S先森丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值