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

  1. 保障消息的成功发出
  2. 保障MQ节点的成功接收
  3. 发送端收到MQ节点(Broker)确认应答
  4. 完善的消息进行补偿机制

补偿机制的时机:网络抖动


1,注意点:落库前是否加事务?

第一步:消息入库,持久化,快速失败
第二步:发消息
第三步:broker确认,生产端确认监听,confirm Listener

注意: 第三步失败,网络失败,分布式定时任务

第四步: 修改状态(发送中 --》 发送成功)

第五步: get status == 0

分布式定时任务:隔了几分钟才重发

第六步: Retry Send (重发逻辑,还要设计一下,避免正常业务也重发了)

第七步: Retry Count > 3 ,status : 2

人工问题,也要解决:注意一定要解决

(上面第一种适合小系统)下面介绍第二种方案,高并发


高并发:减少数据库持久化操作,毫秒级别

方案如下:


注意点:1.一定要等到数据库入库完之后,再去发消息
2.高并发不用事务
3.一次性生成两条消息,第二条是延迟消息(N分钟后发送),投递的队列不一致,消息一样
4.检查消息是否已经成功

第二种方案补偿机制:

1.RPC Resend Command ,MSG DB找不到,要让上游重新再发
2.异步补偿 Callback service, 补偿服务
3.减少DB

Rabbitmq 1.消息如何保障 100%投递成功?相关推荐

  1. SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(附源码)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:rrd.me/f2cxz 一.先扔一张图 说明: 本文涵盖了 ...

  2. rabbitmq消费固定个数消息_SpringBoot+RabbitMQ (保证消息100%投递成功并被消费)

    作者:wangzaiplus https://www.jianshu.com/p/dca01aad6bc8 一.先扔一张图 说明:本文涵盖了关于RabbitMQ很多方面的知识点, 如: 消息发送确认机 ...

  3. SpringBoot + RabbitMQ (保证消息100%投递成功并被消费)

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | jianshu.com/p/dca01aad6 ...

  4. springboot + rabbitmq发送邮件(保证消息100%投递成功并被消费)

    前言: RabbitMQ相关知识请参考: https://www.jianshu.com/p/cc3d2017e7b3 Linux安装RabbitMQ请参考: https://www.jianshu. ...

  5. 消费流程图_SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(附源码)

    来自:简书,作者:wangzaiplus 链接:https://www.jianshu.com/p/dca01aad6bc8 一.先扔一张图 说明: 本文涵盖了关于RabbitMQ很多方面的知识点, ...

  6. 阿里一面:如何保障消息100%投递成功、消息幂等性?

    点击关注公众号,Java干货及时送达来源:toutiao.com/i6672235084336071179 前言 我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafk ...

  7. 如何保障消息100%投递成功、消息幂等性?

    前言 我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等.引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用. 如上图: (1)订单服务投递消息给MQ中间件 ...

  8. RabbitMQ,Springboot整合RabbitMQ实现 消息可靠性投递,Consumer ACK,TTL,死信队列,使用TTL+死信队列=延迟队列

    搭建SpringBoot项目,用于演示 springboot版本 <!-- spring boot --><dependency><groupId>org.spri ...

  9. 如何保障消息中间件 100% 消息投递成功?如何保证消息幂等性?

    一.前言 我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等.引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用. 如上图: (1)订单服务投递消息给MQ中 ...

最新文章

  1. Java-Maven(四):Eclipse集成Maven环境配置
  2. 6. H.264/AVC编码器原理
  3. ASP.NET Core Blazor Webassembly 之 组件
  4. docker yum 安装
  5. 科普 | 单精度、双精度、多精度和混合精度计算的区别是什么?
  6. Spring Boot笔记-controller接收json参数
  7. python切片输出_Python语言之详解切片
  8. nuxt 中 vuex 路由鉴权 keeplive
  9. Digester简介和使用
  10. 诗画丽水 文化传承 萌娃上演宋韵国风非遗主题秀
  11. MGC Group大公司已布局区块链食品供应链技术领域
  12. 申宝证券-个股分化严重
  13. java阳历转为阴历错了一天_Java 阴历阳历转换
  14. Mysql 数据库实战-建库-建表-查多表
  15. 人脸识别12-人脸搜索(安防应用)
  16. c语言编程模拟机械钟表行走,C语言课程设计报告-模拟时钟转动程序
  17. STP、RSTP、MSTP协议
  18. 常见代码重构技巧(非常实用)
  19. 中英文字符大小和文本边界问题
  20. Linux桌面环境(桌面系统)比较优缺点

热门文章

  1. 第一个 Web 程序
  2. 35. 复杂链表的复制
  3. SpringBoot集成Log4j2框架
  4. 分布式数据库中间件概念
  5. GUID和INT两种数据类型做主键的比较
  6. NVMe闪存存储系统设计挑战
  7. 当大数据遇上“智慧园区”会怎样?
  8. 基于9款CSS3鼠标悬停相册预览特效
  9. 今日奇葩事件,一位不懂技术,却来管理技术团队的领导
  10. 腾讯2014年实习生招聘笔试面试经历