RabbitMQ:消费端限流

本文介绍了RabbitMQ中消费端限流的概念,当服务器存在大量未处理消息时,通过设置QoS(服务质量保证)来限制消费端接收消息的数量,确保系统稳定运行。并提供了源码示例,包括Producer、Consumer和MyConsumer的实现。
摘要由CSDN通过智能技术生成
什么是消费端限流

       当我们的RabbitMQ服务器上有大量未处理的消息时,消费端的客户端可能无法同时处理大量的消息,这时候就要对消费端进行限流,同时只接受一定数量的消息。

如何限流

       RabbitMQ提供了一种qos(服务质量保证)的功能,即在非自动确认消息的前提下,如果一定数量的消息(可以通过consume或者Channel设置QoS的值)未被确认前,不再消费新的消息。

源码
// prefetchSize:消费消息的大小,0表示不做限制;
// prefetchCount:同时消费消息的数量;
// global:限流策略应用的级别,true:Channel级别;false:consumer级别;

public void basicQos(int prefetchSize, int prefetchCount, boolean global) throws IOException {
        this.exnWrappingRpc(new Qos(prefetchSize, prefetchCount, global));
    }

例子

Producer.java
public class Producer {

	
	public static void main(String[] args) throws Exception {
		
		Connection
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值