RabbitMQ的ack机制
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机制相关推荐
- RabbitMQ:消费者ACK机制、生产者消息确认
文章目录 基础案例环境搭建: 环境: 1. 生产者发送消息确认 1.1 confirm 确认模式 1.2 return 退回模式 源代码 1.1.3 小结 2. 消费者签收消息(ACK) 2.1 代码 ...
- 用redis实现消息队列(实时消费+ack机制)【转】
用redis实现消息队列(实时消费+ack机制) java queue 消息队列 redis 消息队列 首先做简单的引入. MQ主要是用来: 解耦应用. 异步化消息 流量削峰填谷 目前使用的较多的有A ...
- RabbitMQ的消息确认ACK机制
1.什么是消息确认ACK. 答:如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息就没有完成消息消费,数据就会丢失.为了确保数据不会丢失,RabbitMQ支持消 ...
- 【消息队列之rabbitmq】Rabbitmq之消息可靠性投递和ACK机制实战
目录 一.绪论 二.生产者 2.1事务机制 2.2confirm模式 串行模式 批量模式 异步模式 三.消费者 3.1手动ACK 一.绪论 上篇文章介绍了rabbitmq的基本知识.交换机类型实战&l ...
- rabbitmq消息ACK确认机制及发送失败处理
rabbitmq为确保消息发送和接收成功,采用ack机制. (1)生产者producter发送消息到mq时,mq会发送ack给producter告知消息是否投递成功: (2)消费者consumer接收 ...
- rabbitmq消息队列 ack机制(消息确认机制)和消息补偿机制
参考:https://blog.csdn.net/pan_junbiao/article/details/112956537 ack 机制就是消息在 生产者在发布消息以后,消息存在内存中,如果消息被确 ...
- RabbitMQ ACK 机制的意义
ack 机制可以用来告诉 mq 你的消费者程序已经完成这个消息的处理了. "个人觉得一般处理消息出错都是因为代码逻辑或者出bug,即使 队列中后来仍然保留该消息,然后再给某一个消费者消费,不 ...
- RabbitMQ消息确认机制
文章目录 1. 事务机制 2. Confirm模式 2.1 生产者 2.1.1 普通Confirm模式 2.1.2 批量Confirm模式 2.1.3 异步Confirm模式 2.2 消费者 3. 其 ...
- RabbitMQ exchange交换机机制
目录 RabbitMQ 概念 exchange交换机机制 什么是交换机 binding? Direct Exchange交换机 Topic Exchange交换机 Fanout Exchange交换机 ...
最新文章
- 打造属于自己的underscore系列(五)- 偏函数和函数柯里化
- centos访问mysql_MySql 安装和访问(基于CentOS)
- python中的列表操作
- 阿联酋宣布成立全球首所人工智能大学
- Odoo(OpenERP)配置文件openerp-server.conf详解
- android纵向列表菜单栏实现,RecyclerView实现常见的列表菜单
- Object类的hashCode()方法
- Linux并发服务器编程之多线程并发服务器
- vue修改计算属性的值_Vue语法高级之计算属性和侦听器
- CentOS yum安装mcrypt详细图解教程[linux]
- 设计模式快速学习(五)原型模式
- xm list源码分析
- HTML5客户端数据存储机制Web Storage和Web SQL Database
- 店铺淘宝双十一活动利润的快速量化。
- python 异步定时任务
- 它利用计算机技术 把企业的物流 人流,ERP原理与沙盘模拟感想
- 10大人生感悟助你走向成功之路
- 怎么用电脑设置让wifi变快
- 计算机双硬盘如何设置,电脑固态硬盘+机械硬盘双盘齐下的安装方法-双硬盘设置...
- js唤醒淘宝手机app