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 #每次获取消费一个消息,处理完在获取

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

相关推荐
北风toto2 分钟前
研发效能与后端核心技术全景指南:从CI/CD到共性组件实战
java·开发语言·ci/cd
01二进制代码漫游日记5 分钟前
C++基础入门速通
java·开发语言·c++
Herbert_hwt6 分钟前
第六章 Java深入理解接口、函数式接口与lambda表达式
java·开发语言·算法
岁岁种桃花儿7 分钟前
Vue核心语法第十一篇:绑定样式
前端·javascript·vue.js
API快乐传递者23 分钟前
电商竞品分析接口实战指南:从数据采集到决策洞察的全链路方案
java·python
程序员黑豆8 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
风流 少年9 小时前
Spring AI 2.0:Memory
java·后端·spring
码匠许师傅9 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
万少9 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
小席是个热心肠9 小时前
AI相关的自我学习
java·人工智能·学习