美文网首页
RabbitMQ的ack机制

RabbitMQ的ack机制

作者: 分布式与微服务 | 来源:发表于2022-09-28 09:08 被阅读0次

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机制

    无ack模式(AcknowledgeMode.NONE) server端行为 rabbitmq server默认推...

  • RabbitMQ的ack机制

    1、什么是消息确认ACK。 答:如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处...

  • rabbitmq beam.smp cpu利用率过高

    问题:rabbitmq 的吞吐有多大?目前开启了rabbitmq的持久化/Ack 机制/用的是direct路由器。...

  • 队列服务

    队列服务的ACK机制 Kafka自动提交偏移量(每隔5s提交一次)主动提交偏移量 Rabbitmq默认支持ACK没...

  • 消息队列

    1、RabbitMQ如何保证稳定性 就是保证消息不会丢失消息持久化;ACK确认机制;设置集群镜像模式;消息补偿机制...

  • RabbitMQ的消息确认ACK机制

    1、什么是消息确认ACK如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息...

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

    rabbitmq为确保消息发送和接收成功,采用ack机制。(1)生产者producter发送消息到mq时,mq会发...

  • RabbitMQ如何保证消息99.99%被发送成功?

    1. 本篇概要 RabbitMQ针对这个问题,提供了以下几个机制来解决: 生产者确认 持久化 手动Ack 本篇博客...

  • RabbitMQ的ACK与重回队列机制

    消费端的手工ACK与NACK 当我们设置 autoACK=false 时,就开启了手工ACK模式,那么其实手工模式...

  • Kafka的ack机制

    简述kafka的ack机制 Kafka的ack机制,指的是producer的消息发送确认机制,这直接影响到Kafk...

网友评论

      本文标题:RabbitMQ的ack机制

      本文链接:https://www.haomeiwen.com/subject/bxfjwrtx.html