本文来说下MQ如何防止消息丢失

文章目录

  • MQ消息丢失问题
  • 同步的事务一停止等待
  • 同步的事务一连续ARQ
  • 异步的事务—回调机制
  • 本文小结

MQ消息丢失问题

由于网络问题,我们很难保证生产者发送的消息能100%到达消息队列服务器,也就是说有消息丢失的可能性,因此,生产者就必须具有消息丢失检测和重发机制,也就是我们常说的消息队列的事务机制。不能把可靠性的保证全部交给TCP,TCP只保证了传输层的可靠传输,但是无法保证与应用层的交互是否出错TCP无法给应用层任何反馈,因此必须在应用层处理差错。


同步的事务一停止等待

所谓停止等待协议就是没发送完一组数据后,等待对方确认并且收到确认后,再发送下一组数据。


同步的事务一连续ARQ

类似于TCP的滑动窗口模型


异步的事务—回调机制

生产者在发送消息的时候,注册一个回调函数,这样生产者便不用停下来等待确认了,而是可以一直持续发送消息,当消息到达消息队列服务器的时候,服务器便会调用生产者注册的回调函数,告知生产者消息发送成功了还是失败了,进而做进一步的处理,从而提高了并发量。


本文小结

本文介绍了MQ防止消息丢失的几种解决方案。

MQ如何防止消息丢失相关推荐

  1. active mq topic消费后删除_RabbitMQ重复消费,顺序消费,消息丢失如何解决

    MQ的优势 异步 解耦 削峰 不同MQ的优缺点 特性 RabbitMQ ActiveMQ RocketMQ Kafka 单机吞吐量 万级 万级 十万级 十万级 topic数量对吞吐量影响 topic达 ...

  2. MQ 消息丢失、重复、积压问题,如何解决?

    面试官在面试候选人时,如果发现候选人的简历中写了在项目中使用了 MQ 技术(如 Kafka.RabbitMQ.RocketMQ),基本都会抛出一个问题:在使用 MQ 的时候,怎么确保消息 100% 不 ...

  3. Mq消息丢失解决方案

    1.生产者存放消息的过程中丢失消息 解决办法: 1)事务机制:(同步方式,不推荐) 对于RabbitMQ来说,生产者发送数据之前开启RabbitMQ的事务机制 channel.txselect,如果消 ...

  4. MQ - 如何保证消息不丢失?处理重复消息?消息堆积处理?

    什么是消息队列 在百度百科中,消息队列是这么解释的:"消息队列"是在消息的传输过程中保存消息的容器. 消息队列全称为英文 Message Queue 简称(MQ)是一种应用程序对应 ...

  5. RocketMQ 消息丢失场景分析及如何解决!

    本文来源:https://blog.csdn.net/LO_YUN/article/details/103949317 既然在项目中使用了MQ,那么就不可避免的需要考虑消息丢失问题.在一些涉及到了金钱 ...

  6. RocketMQ消息丢失场景及解决办法

    作者:霁云HYY 来源:https://blog.csdn.net/LO_YUN/article/details/103949317 既然在项目中使用了MQ,那么就不可避免的需要考虑消息丢失问题.在一 ...

  7. RocketMQ 消息丢失场景及解决办法

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

  8. Java性能优化推荐书!RocketMQ消息丢失场景及解决办法

    毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了 既然使用在项目中使用了MQ,那么就不可避免的需要考虑消息丢失问题. ...

  9. 一文理清RocketMQ顺序消费、重复消费、消息丢失问题

    前言 在使用消息队列时不可避免的会遇到顺序消费.重复消费.消息丢失三个问题.在一次面试字节的时候,面试官问到如何保证顺序消费,当时回答不太准确,特意此文回顾如何解决顺序消费.重复消费.消息丢失三个问题 ...

最新文章

  1. scala class和object,trait的区别
  2. MySQL原生密码认证
  3. flex布局怎么设置子元素大小_Chrome72 嵌套 flex 布局修改,你的网站可能会发生布局错乱...
  4. Asp.Net Core安全防护-客户端IP白名单限制
  5. LoadRunner远程监测Centos服务性能配置过程
  6. Cocos2d-x的Android.mk自动生成
  7. 谁说微服务是Spring Cloud的独角戏?Service Mesh了解一下?
  8. c# 如何调用非托管函数 (转)
  9. SqlServe中使用EXEC @sql 来传递table变量
  10. python做积分计算器_用Python学数学之Sympy代数符号运算
  11. 时间表达式java定时器_quartz定时任务时间表达式说明
  12. 【编译原理】简明自底向上分析算法总结:LR(0),SLR,LR(1),LALR分析算法
  13. Python实现Eternal Night游戏(尚未完结,不断更新)
  14. 学习github的网站
  15. flea-jersey使用之文件上传接入
  16. IDEA中运行maven多模块项目,提示程序包xxxx不存在
  17. 深度解析:电商直播基地运营及盈利模式
  18. 华师大 OJ 3037
  19. C语言编程>第一周 ③ 输入某年某月某日,判断这一天是这一年的第几天
  20. 软考的证书含金量高吗?

热门文章

  1. Android用第三方jar包ClassNotFoundException:XXX in loader dalvik.system.PathClassLoader[/app/XX.apk]...
  2. oracle约束的相关总结
  3. 干货首发,能够清理,带动画的自己定义控件CuteEditText
  4. Cacti设置流量阀值实现邮件报警
  5. SilverLight4调用WebService跨域访问问题
  6. Golang入门(1):安装与配置环境变量的意义
  7. VictoriaMetrics入门与实战
  8. SpringMvc 04 基于注解的映射器与适配器配置
  9. Linux Signal及Golang中的信号处理
  10. CSS分别设置Input样式(按input类型