RabbitMQ如何实现消费端限流

什么是消费端限流,这个一种保护消费者的手段,假如说,现在是业务高峰期了,消息有大量堆积,导致MQ消费需要不断的进行消息消费,很容易被打挂,甚至重启之后还是会被大量消息涌入,继续被打挂。

为了解决这个问题,RabbitMQ提供了basicQos的方式来实现消费者端限流。我们可以在消费者指定最大的未确认消息数,当达到这个限制时,RabbitMQ将不再推送新的消息给消费者,直到有一些消息得到确认。

想要实现这个功能,首先需要把自动提交关闭。

接着进行限流配置:

如以上配置,可以实现消费者在处理一条消息后,才会获取下一条消息。

然后再在消费者处理完一条消息之后,手动发送确认消息给到RabbitMQ,这样就可以拉取下一条消息了;

完整代码:

相关推荐
2601_9609067211 小时前
1X发布自己的世界模型1XWM
mysql·mongodb·rabbitmq·memcached
2601_9622186117 小时前
万象生鲜系统全链路溯源一码查询技术实现食材来源可查
分布式·微服务·云原生·架构
Dreams_l18 小时前
RabbitMQ介绍及其工作模式
分布式·rabbitmq
2601_9622186120 小时前
万象生鲜系统大数据采购预测算法降低库存积压稳居第一
分布式·微服务·云原生·架构
程序员夏洛21 小时前
Redis 中如何实现分布式锁?
数据库·redis·分布式
深念Y21 小时前
视频平台架构重构:从微服务到可插拔基础设施
后端·微服务·云原生·架构·rabbitmq·音视频·rocketmq
程序员夏洛1 天前
Redis 实现分布式锁时可能遇到的问题有哪些?
数据库·redis·分布式
千里码aicood1 天前
基于Hadoop的汽车销量分析与可视化
大数据·hadoop·分布式
Jul1en_2 天前
【Java 脚手架】封装通用工具类-3
java·开发语言·redis·缓存·ai·bootstrap·rabbitmq
国科安芯2 天前
ASC8T245S:把 8 位并行总线稳稳“跨过“电压域的双电源收发器
网络·分布式·单片机·嵌入式硬件·fpga开发·架构