RabbitMQ工作模式(二)

简介: Work queues 工作队列模式

一、工作队列介绍

  • Work queues:比简单模式多了一个或者多个消费者,多个消费者消费同一个队列中的消息
  • 应用场景:对于任务过重或者过多的情况下,可以提高任务处理的速度

二、示例

基础代码及工具类全都在第一篇中,需要请查看RabbitMQ工作模式(一)

1、生产者代码

packagecom.cui.producer;
importcom.cui.common.RabbitMqUtils;
importcom.rabbitmq.client.Channel;
importcom.rabbitmq.client.Connection;
importjava.io.IOException;
/*** 工作队列生产者*/publicclassProducer_WorkQueues {
publicstaticvoidmain(String[] args) throwsIOException {
//获得连接Connectionconnection=RabbitMqUtils.getConnection();
//创建channelChannelchannel=connection.createChannel();
//创建队列channel.queueDeclare("work_queues", true, false, false, null);
//发送消息for (inti=0; i<10; i++) {
Stringbody="hello_Word"+i;
channel.basicPublish("", "work_queues", null, body.getBytes());
        }
//释放资源RabbitMqUtils.close(channel, connection);
    }
}

2、消费者代码

packagecom.cui.consumer;
importcom.cui.common.RabbitMqUtils;
importcom.rabbitmq.client.*;
importjava.io.IOException;
/*** 工作队列消费者Consumer_WorkQueues1,可复制一份同样的代码充当消费者2*/publicclassConsumer_WorkQueues1 {
publicstaticvoidmain(String[] args) throwsIOException {
Connectionconnection=RabbitMqUtils.getConnection();
Channelchannel=connection.createChannel();
channel.queueDeclare("work_queues", true, false, false, null);
//接收消息Consumerconsumer=newDefaultConsumer(channel){
@OverridepublicvoidhandleDelivery(StringconsumerTag, Envelopeenvelope, AMQP.BasicPropertiesproperties, byte[] body) throwsIOException {
Stringmessage=newString(body, "UTF-8");
System.out.println("接收到消息:"+message);
            }
        };
channel.basicConsume("work_queues", true, consumer);
    }
}

3、小结:

  • 多个消费者之间对于同一个消息是竞争关系
  • WorkQueues是对于任务过重或者过多的情况可以提高任务处理的速度,例如:短信服务部署多个,只要有一个节点发送成功即可。
相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
8月前
|
消息中间件 存储 网络协议
RabbitMq概述与工作模式(1)(上)
RabbitMq概述与工作模式(1)
70 0
|
8月前
|
消息中间件 数据库
RabbitMq概述与工作模式(1)(下)
RabbitMq概述与工作模式(1)
66 0
|
9月前
|
消息中间件 Dubbo 应用服务中间件
RabbitMQ 六种工作模式与应用场景
RabbitMQ 六种工作模式与应用场景
241 0
|
10月前
|
消息中间件 存储 缓存
RabbitMQ的工作模式
前言 RabbitMQ 是一个流行的开源消息代理,它实现了 AMQP(高级消息队列协议)标准,提供了可靠的消息传递机制。RabbitMQ 支持五种不同的工作模式,包括简单模式、工作队列模式、发布订阅模式、路由模式和主题模式,每种模式都适用于不同的应用场景。在本篇博客中,我们将详细介绍这五种工作模式的原理和使用方法,帮助读者更好地理解 RabbitMQ,并且在实践中选择合适的工作模式来处理不同的消息传递需求。
109 0
RabbitMQ的工作模式
|
11月前
|
消息中间件 数据库
【消息中间件】RabbitMQ的工作模式
【消息中间件】RabbitMQ的工作模式
|
11月前
|
消息中间件 存储 缓存
RabbitMQ:第一章:6 种工作模式以及消息确认机制(理论与代码相结合)
RabbitMQ:第一章:6 种工作模式以及消息确认机制(理论与代码相结合)
|
消息中间件 网络架构
SpringCloudStream学习(二)RabbitMQ中的交换机跟工作模式
SpringCloudStream学习(二)RabbitMQ中的交换机跟工作模式
162 0
SpringCloudStream学习(二)RabbitMQ中的交换机跟工作模式
|
消息中间件
RabbitMQ工作模式5 Topics通配符模式
RabbitMQ工作模式5 Topics通配符模式
181 0
RabbitMQ工作模式5 Topics通配符模式
|
消息中间件 数据库
RabbitMQ工作模式4 Routing路由模式
RabbitMQ工作模式4 Routing路由模式
136 0
RabbitMQ工作模式4 Routing路由模式
|
消息中间件 存储 数据库
RabbitMQ工作模式3 Pub/Sub订阅模式
RabbitMQ工作模式3 Pub/Sub订阅模式
114 0
RabbitMQ工作模式3 Pub/Sub订阅模式