1、什么是消息确认ACK。

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

2、RabbitMQ的ACK的消息确认机制。

ACK机制是消费者从RabbitMQ收到消息并处理完成后,反馈给RabbitMQ,MQ收到反馈后才将此消息从队列中删除。消息的ACK确认机制默认是打开的。

如果一个消费者在处理消息出现了网络不稳、服务器异常等现象,那么就不会有ACK反馈,RabbitMQ会认为这个消息没有正常消费,会将消息重新放入队列。
如果在集群的情况下,RabbitMQ会立即将这个消息推送给这个在线的其他消费者。这种机制保证了在消费者服务端故障的时候,不丢失任何消息和任务。
消息永远不会从RabbitMQ中删除,只有当消费者正确发送ACK反馈,RabbitMQ确认收到后,消息才会从RabbitMQ服务器的数据中删除。

3、ACK机制的开发注意事项?

如果消费者发生异常,ack没法送消息应答。,Message会一直重新分发。然后RabbitMQ会占用越来越多的内容,由于RabbitMQ会长时间运行,因此这个"内存泄漏"是致命的。

4.怎么解决ack的内存泄漏问题?

(1)在程序处理中可以进行异常捕获,保证消费者的程序正常执行。

(2)使用RabbitMQ的ack的配置确认机制。(开启重试次数)

(3)手动设置消息应答。如果消费端异常,也返回应答成功,再把未消费成功的数据记录下来,进行补偿。

RabbitMQ的ack机制相关推荐

  1. RabbitMQ:消费者ACK机制、生产者消息确认

    文章目录 基础案例环境搭建: 环境: 1. 生产者发送消息确认 1.1 confirm 确认模式 1.2 return 退回模式 源代码 1.1.3 小结 2. 消费者签收消息(ACK) 2.1 代码 ...

  2. 用redis实现消息队列(实时消费+ack机制)【转】

    用redis实现消息队列(实时消费+ack机制) java queue 消息队列 redis 消息队列 首先做简单的引入. MQ主要是用来: 解耦应用. 异步化消息 流量削峰填谷 目前使用的较多的有A ...

  3. RabbitMQ的消息确认ACK机制

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

  4. 【消息队列之rabbitmq】Rabbitmq之消息可靠性投递和ACK机制实战

    目录 一.绪论 二.生产者 2.1事务机制 2.2confirm模式 串行模式 批量模式 异步模式 三.消费者 3.1手动ACK 一.绪论 上篇文章介绍了rabbitmq的基本知识.交换机类型实战&l ...

  5. rabbitmq消息ACK确认机制及发送失败处理

    rabbitmq为确保消息发送和接收成功,采用ack机制. (1)生产者producter发送消息到mq时,mq会发送ack给producter告知消息是否投递成功: (2)消费者consumer接收 ...

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

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

  7. RabbitMQ ACK 机制的意义

    ack 机制可以用来告诉 mq 你的消费者程序已经完成这个消息的处理了. "个人觉得一般处理消息出错都是因为代码逻辑或者出bug,即使 队列中后来仍然保留该消息,然后再给某一个消费者消费,不 ...

  8. RabbitMQ消息确认机制

    文章目录 1. 事务机制 2. Confirm模式 2.1 生产者 2.1.1 普通Confirm模式 2.1.2 批量Confirm模式 2.1.3 异步Confirm模式 2.2 消费者 3. 其 ...

  9. RabbitMQ exchange交换机机制

    目录 RabbitMQ 概念 exchange交换机机制 什么是交换机 binding? Direct Exchange交换机 Topic Exchange交换机 Fanout Exchange交换机 ...

最新文章

  1. 打造属于自己的underscore系列(五)- 偏函数和函数柯里化
  2. centos访问mysql_MySql 安装和访问(基于CentOS)
  3. python中的列表操作
  4. 阿联酋宣布成立全球首所人工智能大学
  5. Odoo(OpenERP)配置文件openerp-server.conf详解
  6. android纵向列表菜单栏实现,RecyclerView实现常见的列表菜单
  7. Object类的hashCode()方法
  8. Linux并发服务器编程之多线程并发服务器
  9. vue修改计算属性的值_Vue语法高级之计算属性和侦听器
  10. CentOS yum安装mcrypt详细图解教程[linux]
  11. 设计模式快速学习(五)原型模式
  12. xm list源码分析
  13. HTML5客户端数据存储机制Web Storage和Web SQL Database
  14. 店铺淘宝双十一活动利润的快速量化。
  15. python 异步定时任务
  16. 它利用计算机技术 把企业的物流 人流,ERP原理与沙盘模拟感想
  17. 10大人生感悟助你走向成功之路
  18. 怎么用电脑设置让wifi变快
  19. 计算机双硬盘如何设置,电脑固态硬盘+机械硬盘双盘齐下的安装方法-双硬盘设置...
  20. js唤醒淘宝手机app

热门文章

  1. 关于Flash3D和Unity 3D
  2. [技术讨论]谈架构设计:如何界定前后端,前端是否需要数据库?
  3. mysql swarm_swarm搭建
  4. tpo 17reading1,2
  5. 银行风险预警系统建设中对Java规则引擎选型推荐
  6. GStreamer 进阶
  7. bat脚本删除文件夹
  8. Unreal 入门-Unreal 基础知识。
  9. KNN算法Matlab实现
  10. 《阿里大数据之路》研读笔记(1)