RabbitMQ如何实现消费端限流

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

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

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

接着进行限流配置:

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

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

完整代码:

相关推荐
x***J3483 小时前
VueWebSocket案例
分布式·milvus·appcompat
2501_941804324 小时前
Java在高并发互联网服务开发中的架构设计与性能优化实践全景分享
rabbitmq
努力发光的程序员7 小时前
互联网大厂Java面试:从Spring Boot到微服务架构
spring boot·缓存·微服务·消息队列·rabbitmq·spring security·安全框架
20岁30年经验的码农8 小时前
Kafka 消息中间件实战指南
分布式·kafka·linq
无心水8 小时前
【分布式利器:限流】4、异步场景限流:消息队列削峰填谷+动态限流实现
分布式·mq·分布式限流·动态限流·分布式利器·异步场景限流·消息队列削峰填谷
2501_941147429 小时前
基于 Kotlin 与 Ktor 构建高并发微服务与异步分布式系统实践分享
rabbitmq
z***89719 小时前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
隐语SecretFlow11 小时前
【隐语Serectflow】基于隐私保护的分布式数字身份认证技术研究及实践探索
分布式
回家路上绕了弯11 小时前
支付请求幂等性设计:从原理到落地,杜绝重复扣款
分布式·后端
小马爱打代码12 小时前
SpringBoot + Quartz + Redis:分布式任务调度系统 - 从架构设计到企业级落地
spring boot·redis·分布式