RabbitMQ工作队列模式理解

工作队列模式是一个生产者、一个队列,有一个或者多个消费者。

消费者之间竞争消费消息,即队列中的每一条消息只可能被一个消费者消费。

应用场景:对于消息任务很多的情况,可以使用工作队列提高任务处理的速度。

示例:

消费端:增加两个消费者,监听同一个队列:

复制代码
   @Override
    @RabbitListener(queues = {RabbitMqConfig.DIRECT_QUEUE})
    public void receiveMessage(String message) {
        System.out.println("消息者1:获取到的mq消息:"+message);
    }

    @Override
    @RabbitListener(queues = {RabbitMqConfig.DIRECT_QUEUE})
    public void receiveMessage1(String message) {
        System.out.println("消息者2:获取到的mq消息:"+message);
    }

生产端:发送多条消息测试

复制代码
    public static void main(String[] args) {
        ApplicationContext run = SpringApplication.run(ProducerMain.class);
        RabbitMqService rabbitMqService = (RabbitMqService)run.getBean("rabbitMqService");

        for(int i = 0; i < 20; i++){
            rabbitMqService.sendMessage("rabbitmq发送消息测试");
        }
    }

先启动消费端,然后启动生产端,查看消费者的输出:

相关推荐
Pniubi2 天前
基于RabbitMQ实现延迟队列
rabbitmq
一条泥憨鱼4 天前
【消息队列】ACK确认了什么:消息队列可靠投递的完整链路
java·后端·kafka·消息队列·rabbitmq
后台模板学习6 天前
Kafka 与 RabbitMQ 在用户认证与权限管理场景
kafka·rabbitmq·linq
装不满的克莱因瓶7 天前
支付订单成功异步MQ权益发放设计和开发
java·架构·系统架构·rabbitmq·硬件架构
千里达景区票务系统7 天前
消息队列选型对比:RabbitMQ vs RocketMQ vs Kafka
kafka·消息队列·rabbitmq·rocketmq
未秃头的程序猿10 天前
@ConditionalOnMissingBean 把我配好的 RabbitMQ 手动 ack 吃掉了
后端·rabbitmq
一条泥憨鱼10 天前
【RabbitMQ】高级篇
java·分布式·rabbitmq·php·ruby
阳光不锈@13 天前
三大主流消息队列架构设计思想剖析:从 RabbitMQ 到 RocketMQ 的改造实践
kafka·rabbitmq·rocketmq·rabbit改造rocket·去除rabbitmq·rabbitmq改造
catino18 天前
RabbitMQ详解
分布式·rabbitmq·ruby
叶总没有会19 天前
RabbitMQ高级
分布式·rabbitmq