SpringBoot 消息队列RabbitMQ Work模型 绑定多个消费者 负载均衡 消息处理速度

介绍

RabbitMQ 会将消息轮询地分发给所有绑定的消费者。多个消费者能够并发处理消息,提高了处理效率和系统的鲁棒性。

多个消费者

如果有50条消息将会 a1 a2 a1 a2 的方式进行去轮询消费

java 复制代码
@RabbitListener(queues ="insert.queue") ///insert.queue 为监听的队列名称
public  void  a1(String msg){ //消息消费
 System.out.println(msg);
 //....其他业务逻辑
}

@RabbitListener(queues ="insert.queue") ///insert.queue 为监听的队列名称
public  void  a2(String msg){ //消息消费
    System.out.println(msg);
    //....其他业务逻辑
}

这种方式消息只能被消费一次

在有的时候可能a1 的消费者处理的快一点,a2处理的慢一点 ,而还是以a1 a2 a1 a2这种方式去轮询速度就慢,希望让消费的快一点的多去处理一些消息就不会造成堵塞

解决方案

yaml 复制代码
spring:
  rabbitmq:
    host: 103.73.160.148
    port: 5673 #通信端口
    virtual-host: /csdn #虚拟主机名称
    username: csdn
    password: 123456
    listener:
      simple:
        prefetch: 1 #每次获取消费一个消息,处理完在获取

这样就可以达到消费能力好的去多处理一些消息,性能差的就去少处理消息。

相关推荐
会编程的土豆15 小时前
简易植物大战僵尸游戏 JavaScript版之html
javascript·游戏·html
树码小子15 小时前
SpringIoC & DI (1):IOC介绍 & Spring IoC使用 & DI
java·后端·spring
雯0609~15 小时前
hiprint-官网vue完整版本+实现客户端配置+可实现直接打印(在html版本增加了条形码、二维码拖拽等)
前端·javascript·vue.js
VT.馒头15 小时前
【力扣】2705. 精简对象
javascript·数据结构·算法·leetcode·职场和发展·typescript
摘星编程15 小时前
在OpenHarmony上用React Native:Switch禁用状态
javascript·react native·react.js
tb_first15 小时前
万字超详细苍穹外卖学习笔记5
java·数据库·spring boot·笔记·学习·spring
铁蛋AI编程实战15 小时前
ChatWiki 开源 AI 文档助手搭建教程:多格式文档接入,打造专属知识库机器人
java·人工智能·python·开源
Hx_Ma1615 小时前
SpringBoot消息转换器扩展fastjson
java·spring boot·spring
Coder_preston15 小时前
Spring/Spring Boot实战:从入门到项目部署
java·spring boot·spring
山岚的运维笔记16 小时前
SQL Server笔记 -- 第16章:MERGE
java·笔记·sql·microsoft·sqlserver