Rabbitmq 1.消息如何保障 100%投递成功?
什么是生产端的可靠性投递?
- 保障消息的成功发出
- 保障MQ节点的成功接收
- 发送端收到MQ节点(Broker)确认应答
- 完善的消息进行补偿机制
补偿机制的时机:网络抖动
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%投递成功?相关推荐
- SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(附源码)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:rrd.me/f2cxz 一.先扔一张图 说明: 本文涵盖了 ...
- rabbitmq消费固定个数消息_SpringBoot+RabbitMQ (保证消息100%投递成功并被消费)
作者:wangzaiplus https://www.jianshu.com/p/dca01aad6bc8 一.先扔一张图 说明:本文涵盖了关于RabbitMQ很多方面的知识点, 如: 消息发送确认机 ...
- SpringBoot + RabbitMQ (保证消息100%投递成功并被消费)
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | jianshu.com/p/dca01aad6 ...
- springboot + rabbitmq发送邮件(保证消息100%投递成功并被消费)
前言: RabbitMQ相关知识请参考: https://www.jianshu.com/p/cc3d2017e7b3 Linux安装RabbitMQ请参考: https://www.jianshu. ...
- 消费流程图_SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(附源码)
来自:简书,作者:wangzaiplus 链接:https://www.jianshu.com/p/dca01aad6bc8 一.先扔一张图 说明: 本文涵盖了关于RabbitMQ很多方面的知识点, ...
- 阿里一面:如何保障消息100%投递成功、消息幂等性?
点击关注公众号,Java干货及时送达来源:toutiao.com/i6672235084336071179 前言 我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafk ...
- 如何保障消息100%投递成功、消息幂等性?
前言 我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等.引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用. 如上图: (1)订单服务投递消息给MQ中间件 ...
- RabbitMQ,Springboot整合RabbitMQ实现 消息可靠性投递,Consumer ACK,TTL,死信队列,使用TTL+死信队列=延迟队列
搭建SpringBoot项目,用于演示 springboot版本 <!-- spring boot --><dependency><groupId>org.spri ...
- 如何保障消息中间件 100% 消息投递成功?如何保证消息幂等性?
一.前言 我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等.引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用. 如上图: (1)订单服务投递消息给MQ中 ...
最新文章
- Java-Maven(四):Eclipse集成Maven环境配置
- 6. H.264/AVC编码器原理
- ASP.NET Core Blazor Webassembly 之 组件
- docker yum 安装
- 科普 | 单精度、双精度、多精度和混合精度计算的区别是什么?
- Spring Boot笔记-controller接收json参数
- python切片输出_Python语言之详解切片
- nuxt 中 vuex 路由鉴权 keeplive
- Digester简介和使用
- 诗画丽水 文化传承 萌娃上演宋韵国风非遗主题秀
- MGC Group大公司已布局区块链食品供应链技术领域
- 申宝证券-个股分化严重
- java阳历转为阴历错了一天_Java 阴历阳历转换
- Mysql 数据库实战-建库-建表-查多表
- 人脸识别12-人脸搜索(安防应用)
- c语言编程模拟机械钟表行走,C语言课程设计报告-模拟时钟转动程序
- STP、RSTP、MSTP协议
- 常见代码重构技巧(非常实用)
- 中英文字符大小和文本边界问题
- Linux桌面环境(桌面系统)比较优缺点