rabbitMq消费者角度:消息分发、消息应答(ACK)、公平分发

本文从消费者视角探讨RabbitMQ中的消息处理,包括消息分发的round-robin机制,如何通过关闭自动应答和手动确认确保消息正确处理,以及使用`basicQos`实现消费者负载均衡。详细阐述了`prefetchCount`参数的作用,以保证新消费者能处理堆积消息。
摘要由CSDN通过智能技术生成

rabbitMq交换机简介中介绍了rabbitMq的四种类型交换机;rabbitMq生产者角度一篇从生产者角度介绍如何保证消息被正确发送到服务器,如果未正确发送如何处理;本篇博客将从消费者角度介绍三个问题:队列分发消息到消费者的规则、如何确保消息一定被正确接受并处理了、如何保证多个消费者负载均衡。

一 、消息分发

官网的示例中介绍了默认情况下rabbitMqRabbitMQ会一个一个的发送信息给下一个消费者(consumer),而不考虑每个任务的时长等等,且是一次性分配,并非一个一个分配。平均的每个消费者将会获得相等数量的消息。这样分发消息的方式叫做round-robin。这可以表示为下图:
roud-robin

二、消息应答-保证消息被正确接受并处理

结合上面的分发图说明,默认情况下消费者C1接收到消息1无论是否正常接受和处理都会立即应答rabbit服务器,然后消息1就会从队列中被删除,假如C1突然出现异常状况导致消息1没有被处理完毕,那么消息1就处理失败了,也不会有其他消费者去处理消息1。事实上我们希望的是消息1如果没有被C1正确处理完毕,那么就发送给其他消费者处理,为了达到这个目的,只需要做两件事情,第一关闭rabbitMq的自动应答机制,第二消费者正确处理完消息后手动应答。

核心代码展示

        //第二个参数autoAck设置成false表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ni0224

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值