RabbitMQ(高级特性):限流

消费端限流

在rabbitmq中,使用消费端限流必须开启手动签收信息

过MQ可以对请求进行"削峰填谷",即通过消费端限流的方式限制消息的拉取速度,达到保护消费端的目的。

生产者批量发送消息:

java 复制代码
@Test
public void testSendBatch() {
  // 发送十条消息
  for (int i = 0; i < 10; i++) {
    rabbitTemplate.convertAndSend("my_topic_exchange", "my_routing", "send message..."+i);
   }
}

消费端配置限流机制

yaml 复制代码
spring:
  rabbitmq:
   host: 192.168.0.162
   port: 5672
   username: itbaizhan
   password: itbaizhan
   virtual-host: /
   listener:
    simple:
    # 限流机制必须开启手动签收
     acknowledge-mode: manual
    # 消费端最多拉取5条消息消费,签收后不满5条才会继续拉取消息。
     prefetch: 5

消费者监听队列

java 复制代码
@Component
public class QosConsumer{
  @RabbitListener(queues = "my_queue")
  public void listenMessage(Message message, Channel channel) throws IOException, InterruptedException {
    // 1.获取消息
    System.out.println(new String(message.getBody()));
    // 2.模拟业务处理
    Thread.sleep(3000);
    // 3.签收消息
    channel.basicAck(message.getMessageProperties().getDeliveryTag(), true);
   }
}
相关推荐
2501_9411477124 分钟前
边缘计算:未来智能时代的关键技术
rabbitmq
2501_941877135 小时前
边缘计算:推动智能化转型的隐形引擎
rabbitmq
2501_941886865 小时前
区块链技术:从金融创新到行业赋能的全景视野
rabbitmq
2501_941809147 小时前
智能城市:数字化转型助力城市可持续发展与智能化管理
rabbitmq
2501_941822758 小时前
互联网+教育:数字化转型推动教育公平与质量提升
rabbitmq
2501_941807269 小时前
人工智能与自动化:重塑未来工作与社会结构
rabbitmq
2501_941820499 小时前
区块链技术在不同行业中的应用与挑战:从金融到供应链的数字化革新
rabbitmq
2501_9414043112 小时前
虚拟现实与增强现实:颠覆行业的沉浸式体验
rabbitmq
debug骑士12 小时前
虚拟现实的未来:重新定义体验与互动的边界
rabbitmq
2501_9418824815 小时前
多维度应用架构演进驱动互联网产业创新实现业务增长与研发效能同步提升实践案例分析与趋势研究
rabbitmq