RabbitMQ工作模式-工作队列

RabbitMQ 的工作模式 在这里,我们并不重点关注。 阅读详情

官网关于工作模式的解释地址:https://www.rabbitmq.com/getstarted.html

Work Queue(工作队列)

生产者发消息,启动多个消费者来消费消息,每个消费者仅消费部分消息,可达到负载均衡的效果。

在这里插入图片描述

创建生产者

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.nio.charset.StandardCharsets;

public class Product {


    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();

        factory.setUri("amqp://root:123456@node1:5672/%2f");

        //创建连接和队列
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();


        //声明队列,持久化,不自动删除
        channel.queueDeclare("qu.wk", true, false, false, null);

        //声明交换机,消息持久化,不自动删除
        channel.exchangeDeclare("ex.wk", BuiltinExchangeType.DIRECT, true, false, null);

        //队列和交换机绑定
        channel.queueBind("qu.wk", "ex.wk", "rk.wq");

        for (int i = 0; i < 20; i++) {
            //发送消息
            channel.basicPublish("ex.wk",
                    "rk.wq", null, ("data msg " + i).getBytes(StandardCharsets.UTF_8));
        }


        channel.close();
        connection.close();
    }

}

创建消费者

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.CancelCallback;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.DeliverCallback;
import com.rabbitmq.client.Delivery;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class Consumer {

    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();

        factory.setUri("amqp://root:123456@node1:5672/%2f");

        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        //声明队列,持久化,不自动删除
        channel.queueDeclare("qu.wk", true, false, false, null);

        channel.basicConsume("qu.wk", new DeliverCallback() {
            @Override
            public void handle(String consumerTag, Delivery message) throws IOException {
                System.out.println("收到的消息:" + new String(message.getBody(), StandardCharsets.UTF_8));
            }
        }, new CancelCallback() {
            @Override
            public void handle(String consumerTag) throws IOException {
                System.out.println("cancel的消息:" + consumerTag);
            }
        });
    }
}

首先运行消息费,为了测试工作队列模式,消费都需要启动多个,看是否能够进行负载均衡操作。

在IDEA中启动多个消费者,注意需要沟选启动运行参数:

在这里插入图片描述

此样例中启动是4个。

在这里插入图片描述

启动生产者,再观察消费者的输出信息:

再次观察消费者的输出便可发现:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以发现每个工作队列都收到了5条消息。

此便可看出工作队列的一个重要特性,负载均衡。

RabbitMQ的应用 下述代码中要在pom文件中引入依赖。 阅读详情

相关推荐

RabbitMQ的工作模式有哪些|RabbitMQ的简单模式、工作队列模式、发布/订阅模式、路由模式、主题模式、RPC模式

RabbitMQ提供了多种工作模式,以满足不同场景下的消息传递和处理需求。以下是对RabbitMQ主要工作模式的详细解释,并附带相应的举例说明

小小鱼儿小小林的博客 374

详解RabbitMQ工作模式之工作队列模式

详解RabbitMQ工作模式之工作队列模式。

. 1万+

常学常新:《Attention Is All You Need》万字解读!

常学常新:《Attention Is All You Need》万字解读!

hunteritself的博客 3643

RabbitMQ学习(二):工作模式——简单队列,工作队列,发布-订阅模式

目录 RabbitMQ工作模式 1、简单队列 2、工作队列 (1)轮询分发 (2)公平分发 3、发布-订阅模式 后续模式:RabbitMQ学习(三):工作模式——路由模式,主题模式,RPC模式 RabbitMQ工作模式 使用Java语言,这里暂不讲解与Spring的整合,重点在于六种模式的理解,需要的包。 <dependency> <groupId&...

IcyDate的博客 468

ADS与MATLAB数据互通全指南:从Snp文件导入到TXT导出完整流程

本文详细介绍了在射频与微波工程中,实现ADS与MATLAB高效数据互通的完整流程。核心内容包括利用SPOutput控件、数据显示窗口及测量方程等多种方法,将ADS仿真数据(如S参数)导出为Touchstone或TXT格式,并导入MATLAB进行深度分析与可视化;同时指导如何将MATLAB处理后的数据回灌至ADS,用于模型验证与协同仿真,旨在构建自动化、无损的数据交换工作流,提升工程师的工作效率。

pluto的博客 390

置顶必读(3) |《滚雪球学SpringBoot》· 高质量专栏介绍,你值得拥有!

《滚雪球学SpringBoot》 并不是普通的技术讲解合集,它是专为开发者精心设计的系统化学习路径。通过不断“滚动学习”,我们将带领你从基础入门到高阶应用,从理解每一行代码到设计和优化大规模分布式系统,最终帮助你成长为一位精通 spring架构 的工程师。

**My Coding Family** 15万+

记录rabbitmq工作模式之工作队列模式(work queues)

1、应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度。 2、实现过程 1)首先建立消息的发布者 public class producer01 { //队列名称 private static final String QUEUE = “helloworld”; public static void main(String[] args) { //通过连接工程创建新连接和mq连接 ConnectionFactory factory = new ConnectionFactory();

乖摸摸头的博客 2442

物联网应用开发教程专栏介绍与说明——列表目录查阅(持续更新)

为方便查阅学习本专栏,特整理专栏介绍与说明及提供列表目录便于查阅。阿齐Archie《物联网应用开发教程》专栏。本专栏为物联网应用开发教程,将更新涵盖常见的WIFI、蓝牙、蜂窝网、以太网、Lora、NB-iot等物联网技术实战应用及详解其技术知识。专栏为技术文章,订阅一个文章即可本专栏内所有文章可看,实战开发,亲测无误,附视频演示效果,会持续更新本专栏。本专栏内有理论篇也有完整实战应用篇。

嵌入式阿齐Archie 2万+

RabbitMq——工作队列工作模式

在默认路由下,当有多个工作线程时,可以共同完成这个工作队列,他们的模式有两种:轮训分发和不公平分发。 1.轮训分发:依次按照顺序一条一条分发到每个工作线程处理,一个工作线处理完,下一个工作线程才能进行。 案例:一个生产者发消息,两个消费者消费消息,采用轮训分发模式 (1)开启linux上rabbitmq的服务和关闭linux防火墙 /sbin/service rabbitmq-server start systemctl stop firewalld (2)写一个连接工厂,创建信道的工具类

weixin_50616848的博客 775

腾讯开源SuperSonic:AI+BI如何重塑数据分析?

SuperSonic是腾讯开源的AI+BI平台,融合Chat BI与Headless BI,为制造企业提供实时数据分析。它通过自然语言交互打破数据壁垒,实现生产、库存、质量、供应链等多环节优化,提升决策效率,其开源生态与扩展性助力企业数字化转型与数据价值挖掘。

数据与算法架构提升之路专栏 4535

6.Burp Suite 入门篇 —— Burp Scanner 漏洞扫描

Burp Scanner 既可以是独立的全自动扫描器,也可以在手动测试中当作强大的辅助手段,而且随着技术改进,Burp Scanner 能检测到的漏洞数量也在不断增加。Burp Scanner 功能只在 burpsuite 专业版和企业版中里有,本篇教程讲的是专业版的 Burp Scanner 用法。

YouTheFreedom的博客 1万+

RabbitMQ 的工作模式——Work Queues 工作队列模式

一、模式说明 Work Queues:与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。 应用场景:对于任务过重或任务较多情况,使用工作队列可以提高任务处理的速度。 二、代码 Producer_WorkQueues package com.itheima.producer; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.cli

dingd1234的博客 1192

【BlueDroid】【BLE】低功耗蓝牙客户端和服务端开发流程解析(超详细)

1. 精讲):SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论2. 欢迎大家关注和订阅,和专栏会持续更新中.....敬请期待!

风云说通信 1924

RabbitMQ工作模式——Work queues 工作队列模式

模式说明 Work queues:显而易见,与简单模式不同的是,Work queues 模式存在多个消费者,多个消费者其实是竞争关系,C1 C2只有一个能从MQ队列中获取到消息 应用场景:对于任务过重或者任务较多情况下,使用Work queues模式可以提高任务的处理速度 比如P端的任务每秒有1000个,但是每个C端每秒只能处理500个,所以两个C端共同“竞争”MQ中的任务就可以处理1000个消息了,需要注意的是C1和C2获得的消息互不相同。 其实Work queues模式就是在简单模式上的一对

保暖透气大裤衩LeoLee的博客 957

荣耀Magic 6 dToF LiDAR Android阵营全球第一首发

40X30分辨率的BSI SPAD小面阵,帧率达到60帧,搭配多传感器融合算法, 可产生足够的稠密点云,为应用设备提供可靠的距离传感。在手机消费电子方案中,dToF LiDAR技术不仅提升了手机的功能和用户体验,还为手机厂商提供了差异化的竞争优势。随着技术的不断进步和市场的快速发展,我们可以期待未来dToF LiDAR技术将在手机领域发挥更大的作用,为用户带来更多创新和便捷的功能。增强现实(AR)体验:通过dToF LiDAR提供的高精度深度信息,手机可以更准确地放置虚拟物体在现实世界的表面上。

致力于lidar应用开发 19万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

rabbitmq工作模式详解之工作队列模式-work queues

rabbitmq工作模式详解之工作队列模式-work queues

qq_41992429的博客 299

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

RabbitMQ基本概念与工作模式(RabbitMQ特点,工作队列work queue、路由模式routing、发布/订阅模式Pub/Sub、通配模式Topics)

文章目录前言一、基本概念1. AMQP和JMS的区别2.MQ的特性二、工作模式0.初始化生产/消费方1.工作队列模式2.路由模式3.发布/订阅模式4.通配模式 前言 讲讲RabbitMQ的基本概念和工作模式。 提示:以下是本篇文章正文内容,下面案例可供参考 一、基本概念 1. AMQP和JMS的区别 JMS是Java消息服务,是Java内部的一种消息中间件。是Java的API规范接口 AMQP是一种协议,直接定义了网络交换的数据格式 ,是一种高级消息队列协议 2.MQ的特性 应用解耦,在系统与系

qq_45596525的博客 405

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RabbitMQ的工作模型

RabbitMQ 其实一共有六种工作模式:简单模式(Simple)、工作队列模式(Work Queue)、发布订阅模式(Publish/Subscribe)、路由模式(Routing)、通配符模式(Topic)、远程调用模式(RPC)。其中发布订阅模式、路由模式、通配符模式这三种模型都属于订阅模式,只不过它们之间进行路由的方式不同罢了。远程调用模式是 RPC 不属于MQ,所以最终统计下来就是五种工作模式。

qq_26733517的博客 1646

【rabbitmq】工作模式之工作队列模式

rabbitmq工作队列模式

王佑辉的博客 138

RabbitMQ工作模式2-工作队列模式

生产者:Producer_WorkQueues消费者:2个(Consumer_WorkQueues,Consumer_WorkQueues2)

weixin_54401017的博客 137

RabbitMQ 第一天 基础 4 RabbitMQ 的工作模式 4.1 Work queues 工作队列模式

RabbitMQ 第一天 基础 4 RabbitMQ 的工作模式 4.1 Work queues 工作队列模式

代码改变世界 791

4-RabbitMQ工作模式-Work queues工作队列模式

4-RabbitMQ工作模式-Work queues工作队列模式Work queues工作队列模式1. 模式说明Work Queues与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度。2. 案例Work Queues与入门程序的简单模式的代码是几乎一样的;可以完全...

DevOps海洋的渔夫@专栏 654

消息队列之RabbitMQ工作模式

在这篇博客中,我将深入探讨 RabbitMQ 的工作模式,带你领略它的强大之处。我们将了解到 RabbitMQ 如何通过队列、交换机、绑定等核心概念实现消息的路由和传递。你将学习到不同类型的交换机,以及它们如何根据消息的路由键将消息路由到相应的队列。无论你是刚刚接触消息队列,还是已经有一定经验的开发者,这篇博客都将为你提供深入了解 RabbitMQ 工作模式的机会。通过实际的案例和代码示例,我将帮助你更好地理解如何使用 RabbitMQ 来解决实际的业务问题。

liubopro666的博客 1272

RabbitMQ工作模式(详解 工作模式:简单队列、工作队列、公平分发以及消息应答和消息持久化)

RabbitMQ 是一个开源的消息队列中间件,它实现了高级消息队列协议(AMQP),用于在不同应用程序、服务或组件之间传递消息。它的主要作用是解耦不同的应用组件,使得系统具有更好的可扩展性和可靠性。RabbitMQ 支持多种消息传递模式,包括发布/订阅、工作队列、路由、请求/响应等。RabbitMQ 主要应用于异步任务处理、消息传递、事件通知等场景。。

Java技术加油站的博客 1462

SpringBoot 集成 Spring AMQP + RabbitMQ 一文搞定多种工作模式(点对点、工作队列、发布订阅、路由、主题、RPC、死信队列)与各种自定义配置详解

SpringBoot 集成 Spring AMQP + RabbitMQ 一文搞定多种工作模式(点对点、工作队列、发布订阅、路由、主题、RPC、死信队列)与各种自定义配置详解

weixin_46812727的博客 948

RabbitMQ工作模式

RabbitMQ工作模式 简述: RabbitMQ主要有五种工作模式,分别是: 1、简单模式(Hello World) 2、工作队列模式(Work Queue) 3、发布/订阅模式(publish/subscribe) 4、路由模式(routing) 5、主题模式(Topic) 而后面,我通过解释+代码实现的形式展现这五种模式: 先附上工具类代码,主要用于方便创建连接: public class RabbitUtils { private static ConnectionFactory conne

weixin_45264992的博客 2236
上一篇: RabbitMQ-常用命令
下一篇: RabbitMQ工作模式-发布订阅模式
null_null_bug
博客等级 码龄7年 72粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值