我们将消息持久化后,假如消费端出现异常,rabbitmq服务器会将消息缓存到内存,当生产者发送一直发送消息而消费者都没有正常消费时消息就会将这些消息全部保存在内存,当我们的消息过多时,就可能导致rabbitmq服务器内存泄漏,

解决办法:1.开启ack确认机制,2.消费端设置重试机制(默认是三次)

开启之后生产者客户端没有收到消息ack反馈就会认为该消息没有被消费,就会保存到内存,但是设置重试机制后,消费端消费了设置的重试次数之后,假如还没有收到ack反馈,就会将缓存在内存中的消息移除,这样就可以防止内存溢出

消费端具体配置代码:

  1. spring.application.name=springcloud-mq

  2. spring.rabbitmq.host=192.168.70.131

  3. spring.rabbitmq.port=5672

  4. spring.rabbitmq.username=oldlu

  5. spring.rabbitmq.password=123456

  6. #设置交换器的名称

  7. mq.config.exchange=log.direct

  8. #info队列名称

  9. mq.config.queue.info=log.info

  10. #info路由键

  11. mq.config.queue.info.routing.key=log.info.routing.key

  12. #error队列名称

  13. mq.config.queue.error=log.error

  14. #error路由键

  15. mq.config.queue.error.routing.key=log.error.routing.key

  16. #开启重试

  17. spring.rabbitmq.listener.retry.enabled=true

  18. #重试次数,默认为3次

  19. spring.rabbitmq.listener.retry.max-attempts=5

来源:https://blog.csdn.net/liyu121/article/details/99492479

RabbitMQ中的消息确认ACK机制相关推荐

  1. RabbitMQ的消息确认ACK机制

    1.什么是消息确认ACK. 答:如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息就没有完成消息消费,数据就会丢失.为了确保数据不会丢失,RabbitMQ支持消 ...

  2. RabbitMq入门(七)消息处理(消息持久化autoDelete、消息确认ACK机制)

    https://bhttps://blog.csdn.net/qq_32786139/article/details/88813945log.csdn.net/qq_32786139/arhttps: ...

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

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

  4. rabbitmq怎样确认是否已经消费了消息_【朝夕专刊】RabbitMQ生产者/消费者消息确认...

    欢迎大家阅读<朝夕Net社区技术专刊> 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 上篇文章介绍了R ...

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

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

  6. RabbitMQ消息应答------ack机制

    Message acknowledgment(消息应答) 执行一个任务可能需要花费几秒钟,你可能会担心如果一个消费者在执行任务过程中挂掉了.一旦RabbitMQ将消息分发给了消费者,就会从内存中删除. ...

  7. RabbitMQ Work Queues 消息确认

    RabbitMQ Work Queues 简介 Hello Word中只是简单介绍,下面开始重点分析 例如:当我们有复杂需求,我们需要提升效率,毕竟只有一个消费者难免处理不过来,就如官网中所提到的一样 ...

  8. 【RabbitMQ】6、rabbitmq生产者的消息确认

    2019独角兽企业重金招聘Python工程师标准>>> 通过Publisher Confirms and Returns机制,生产者可以判断消息是否发送到了exchange及queu ...

  9. 【RabbitMQ】消息应答--ack机制

    目录 消息应答 概念 自动应答 消息应答的方法 Multiple 的解释 手动应答实现 1.准备工具类 2.生产者 3.两个睡眠时间不同的消费者 4.效果展示 消息自动重新入队 效果演示: 消息应答 ...

最新文章

  1. One Switch for Mac 一键切换系统各项功能
  2. springboot 接受数组对象_SpringBoot+RabbitMQ 方式收发消息
  3. 我和学员那些事儿——涅槃重生的背后
  4. nodejs ajax进度条,Ajax异步文件上传与NodeJS express服务端处理的示例分析
  5. 大概看了一下《Flash MX 2004 -- 数据库应用开发 - 基于.NET架构》,感觉有点迷惘了!...
  6. containsall_Java Vector containsAll()方法与示例
  7. 漫步最优化二十四——二分搜索
  8. Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(三)
  9. 强化学习Q-Learning算法及实现详解
  10. SQL Server 数据库原理与应用
  11. QTP 自动化测试--定义变量
  12. fdisk硬盘分区(1)——系统盘剩余空间创建分区
  13. Java 登录拦截器
  14. 几个很实用的软件 root 改机 软改 硬改 改串号 改设备 参数生成器APK 电脑软件
  15. android ffmpeg neno优化
  16. linux 读取内存颗粒,Linux中的内存管理模型浅析
  17. 操作系统文件存储空间管理(存储空间的划分与初始化)
  18. telnet 访问80端口
  19. 移动端页面键盘弹出后导致body高度变低背景图片被挤上去解决方法
  20. SLAM基础问题总结(1)

热门文章

  1. QT的QFontDialog类的使用
  2. c++标准程序库异常
  3. c++ 预处理命令 #if, #ifdef, #ifndef, #else, #elif, #endif用法
  4. 监控摄像头卡顿_视频监控系统施工六大注意事项
  5. Docker网络通信openvswitch(来自龙果学院学习资料 + 自己实验结果)
  6. Spark SQL概述,DataFrames,创建DataFrames的案例,DataFrame常用操作(DSL风格语法),sql风格语法
  7. 分布式系统概述(来自学习资料)
  8. 1gitolite构建git服务器
  9. Android PDU
  10. numpy.loadtxt()用法