为什么还要消息补偿机制呢? 难道消息还会丢失,没错,系统是在一个复杂的环境,不要想的太简单了,虽然以上的三种方案,基本可以保证消息的高可用不丢失的问题,但是作为有追求的程序员来讲,要绝对保证我的系统的稳定性,有一种危机意识。

比如:持久化的消息,保存到硬盘过程中,当前队列节点挂了,存储节点硬盘又坏了,消息丢了,怎么办?

产线网络环境太复杂,所以不知数太多,所以要做消息补偿机制 !

消息补偿机制需要建立在业务数据库和MQ数据库的基础之上 , 当我们发送消息时 , 需要同时将消息数据保存在数据库中, 两者的状态必须记录。 然后通过业务数据库和MQ数据库的对比检查消费是否成功,不成功,进行消息补偿措施,重新发送消息处理

消息补偿机制核心 : 发现未成功消费的消息, 并且重新发送消息

消息回调检查服务 : 发送正常消息同时发送一个延迟消息, 当监听到延迟消息的时候, 检查MDB中是否有消费记录 , 如果没有代表存在消息丢失, 重新发送消息

消息定时检查服务 : 设置定时任务, 定时比对业务DB和MDB ,中的数据是否一致, 如果不一致一定存在消息丢失, 重新发送

什么是消息补偿机制?相关推荐

  1. RabbitMQ的消息补偿机制

    目录 前言: 常见问题及解决思路 一.消息防丢方案 二.消息防堆积方案 三.消息发送失败补偿方案 3.1 消息发送失败处理方案 3.2 消息发送失败补偿方案 3.3 confirm方案对比 四. 消息 ...

  2. rabbitmq消息队列 ack机制(消息确认机制)和消息补偿机制

    参考:https://blog.csdn.net/pan_junbiao/article/details/112956537 ack 机制就是消息在 生产者在发布消息以后,消息存在内存中,如果消息被确 ...

  3. 简单聊聊消息队列的事务补偿机制

    https://my.oschina.net/u/1589819/blog/1503241 因为一直学习与尝试负责公司的推送相关业务,包括整个应用的实现,其中就采用了基于消息队列的异步事件驱动模型来做 ...

  4. springboot + rabbitmq 用了消息确认机制,感觉掉坑里了

    最近部门号召大伙多组织一些技术分享会,说是要活跃公司的技术氛围,但早就看穿一切的我知道,这 T M 就是为了刷KPI.不过,话说回来这的确是件好事,与其开那些没味的扯皮会,多做技术交流还是很有助于个人 ...

  5. java确认rabbitmq_RabbitMQ 消息确认机制

    生产端 Confirm 消息确认机制 消息的确认,是指生产者投递消息后,如果 Broker 收到消息,则会给我们生产者一个应答.生产者进行接收应答,用来确定这条消息是否正常的发送到 Broker ,这 ...

  6. 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究[转]

    1.XA XA是由X/Open组织提出的分布式事务的规范.XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接 ...

  7. 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究

    本文原文连接: http://blog.csdn.net/bluishglc/article/details/7612811 ,转载请注明出处! 1.XA XA是由X/Open组织提出的分布式事务的规 ...

  8. 关于分布式事务 两阶段提交 一阶段提交 Best Efforts 1PC模式和事务补偿机制的研究

    本文原文连接: http://blog.csdn.net/bluishglc/article/details/7612811 ,转载请注明出处! 1.XA XA是由X/Open组织提出的分布式事务的规 ...

  9. 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究...

    本文原文连接: http://blog.csdn.net/bluishglc/article/details/7612811 ,转载请注明出处! 1.XA XA是由X/Open组织提出的分布式事务的规 ...

最新文章

  1. 洛谷P2763 试题库问题
  2. 一次生产 CPU 100% 排查优化实践
  3. android分析windowManager、window、viewGroup之间关系
  4. Duilib及demo
  5. java编程有什么独特之处?
  6. 我们身边的知识产权单元测试答案(期末考试复习)【湘潭大学】
  7. Nginx 场景应用
  8. linux切换机器ssh命令,linux – 如何编写一个bash shell脚本来ssh到远程机器并更改用户并导出一个env变量并执行其他命令...
  9. 【2022最新Java面试宝典】—— 多线程面试(60道含答案)
  10. 常用web前端UI组件库
  11. 帆软公式如何用数据库字段_高考数学必背100招:如何用构造法求数列通项公式?...
  12. 计算机二级office高级应用知识点,2017年全国计算机二级考试MS Office高级应用知识点:电子邮件...
  13. vlookup函数和vlookup函数与数据有效性
  14. 在Windows 7镜像中整合“SP2”补丁
  15. 关于手机唯一识别码的研究meid和imei
  16. 找单身狗版本2(有两个单身狗)
  17. GST1212M非制冷红外探测器调试成像
  18. Kafka 的 Lag 计算误区及正确实现
  19. 软件测试 质量管控,软件测试之质量管理入门
  20. 「那样记账」——一款纯粹、轻量的记账应用

热门文章

  1. 事务原子性、一致性、持久性的实现原理
  2. 三个点在同一个半圆的概率_圆内任取三点/四点在同一半圆内的概率是多少?...
  3. 【HTML505】HTML基础05_区块_布局
  4. 第2章 基础设施即服务(IaaS)-2-Docker
  5. 【有限元分析】网格形状和网格尺寸对结果的影响——以矩形杆的静力分析为例
  6. Ubuntu 16.04 下开机引导修复Windows
  7. wish - 简单的窗口式(windowing) shell
  8. 数字版权资源价值日益凸显
  9. php 环信easyui_php集成环信IM即时通讯系统(大致流程方法)
  10. AOP(面向切面)原理及使用