当前位置: 首页 > news >正文

RabbitMQ的工作模式——WorkQueues

1.工作队列模式

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

生产者代码

public class Producer_WorkQueues1 {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factory = new ConnectionFactory();//2.设置参数factory.setHost("172.16.98.133"); ip 默认值 localhostfactory.setPort(5672);//端口 默认值5672factory.setVirtualHost("/itcast");//虚拟机 默认值factory.setUsername("heima");//用户名 默认guestfactory.setPassword("heima");//密码 默认值 guest//3.创建连接 ConnectionConnection connection = factory.newConnection();//4.创建ChannelChannel channel = connection.creatChannel();//5.创建队列Queue/*queueDeclare(String queue,boolean durable,boolean exclusive,boolean autoDelete,Map<String,Object> arguments参数:1.queue:队列名称2.durable:是否持久化,当mq重启之后,还在3.exclusive:是否独占,只能有一个消费者监听这队列当Connection关闭时,是否删除队列4.autoDelete:是否自动删除。当没有Consumer时,自动删除掉5.arguments:参数。*///如果没有一个名字叫hello_world的队列,则会创建该队列,如果有则不会创建channel.queueDeclare("work_queues",true,false,false,null);/*basicPublish(String exchange,String routingKey,BasicProperties props, byte[] body)参数:1.exchange:交换机名称。简单模式下交换机默认使用的“”2.routingKey:路由名称3.props:配置信息4.body: 发送消息数据*/for(int i = 1; i<=10;i++){String body = i + "hello rabbitmq~~~";//发送消息channel.basicPublish("","work_queues",null,body.getBytes());}//7.释放资源channel.close();connection.close();}
}

消费之代码

public class Consumer_WrokQueues1 {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factory = new ConnectionFactory();//2.设置参数factory.setHost("172.16.98.133"); ip 默认值 localhostfactory.setPort(5672);//端口 默认值5672factory.setVirtualHost("/itcast");//虚拟机 默认值factory.setUsername("heima");//用户名 默认guestfactory.setPassword("heima");//密码 默认值 guest//3.创建连接 ConnectionConnection connection = factory.newConnection();//4.创建ChannelChannel channel = connection.creatChannel();//5.创建队列Queue/*queueDeclare(String queue,boolean durable,boolean exclusive,boolean autoDelete,Map<String,Object> arguments参数:1.queue:队列名称2.durable:是否持久化,当mq重启之后,还在3.exclusive:是否独占,只能有一个消费者监听这队列当Connection关闭时,是否删除队列4.autoDelete:是否自动删除。当没有Consumer时,自动删除掉5.arguments:参数。*///如果没有一个名字叫hello_world的队列,则会创建该队列,如果有则不会创建channel.queueDeclare("work_queues",true,false,false,null);/*basicConsume(String queue,boolean autoAck,Consumer callback)参数:1.queue:队列名称2.autoAck:是否自动确认3.callback:回调对象*///接收消息Consumer consumer = new DefaultConsumer(channel){/*回调方法,当收到消息后会自动执行该方法1.consumerTag:标识2.envelope:获取一些信息,交换机,路由key...3.properties:配置信息4.body:数据*/@Overridepublic void handleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body){System.out.println("consumerTag" + consumerTag);System.out.println("Exchange" + envelope.getExchange());System.out.println("RoutingKey" + envelope.getRoutingKey());System.out.println("properties" + properties);System.out.println("body" + new String(body));}};channel.basicConsume("work_queues",true,consumer);//消费者不能关闭资源}
}

启动连个消费者从同一个生产者里面争抢消息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

RabbitMQ的工作模式——WorkQueues

1.工作队列模式 生产者代码 public class Producer_WorkQueues1 {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factory new ConnectionFactory();//2.设置参数factory.setHost("172.16.98.133&qu…...

AOJ 0531 坐标离散化

一、题目大意 在(0<x<w&#xff0c;0<y<h)的坐标系里有多个矩形&#xff0c;把区域分成了多个部分&#xff0c;我们需要针对找出被矩形分割的连通的区块数量。 二、解题思路 这个题目其实和学DFS时候那个找出连通的水洼是一样的。只是这个地图比较大&#xff0c…...

Python —— pytest框架

1、认识pytest框架 1、搭建自动化框架的思路与流程 1、搭建自动化测试框架的思路和流程&#xff0c;任意测试手段流程都是一致的&#xff1a;手工测试、自动化测试、工具测试 手工测试&#xff1a;熟悉业务 —— 写用例 —— 执行用例并记录结果 —— 生成测试报告自动化测试…...

IP地址欺骗的危害与后果

IP地址欺骗&#xff0c;也被称为IP地址伪装或IP地址欺诈&#xff0c;是一种网络攻击技术&#xff0c;旨在伪装或隐藏攻击者的真实IP地址。尽管这种技术可能有一些合法的用途&#xff0c;例如保护用户的隐私或绕过地理位置限制&#xff0c;但它也经常被恶意黑客用于不法行为。本…...

系统集成|第十章(笔记)

目录 第十章 质量管理10.1 项目质量管理概论10.2 主要过程10.2.1 规划质量管理10.2.2 实施质量保证10.2.3 质量控制 10.3 常见问题 上篇&#xff1a;第九章、成本管理 第十章 质量管理 10.1 项目质量管理概论 质量管理&#xff1a;指确定质量方针&#xff0c;质量目标和职责&a…...

Linux之perf(7)配置

Linux之perf(7)配置类命令 Author&#xff1a;Onceday Date&#xff1a;2023年9月23日 漫漫长路&#xff0c;才刚刚开始… 注&#xff1a;该文档内容采用了GPT4.0生成的回答&#xff0c;部分文本准确率可能存在问题。 参考文档: Tutorial - Perf Wiki (kernel.org)perf(1)…...

14:00面试,14:06就出来了,问的问题过于变态了。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…...

JPA的注解@Field指定为Keyword失败,导致查询不到数据

一、背景 使用 jpa 对es操作&#xff0c;查询条件不生效&#xff0c;需求是批量查询课程编号。说白了&#xff0c;就是一个In集合的查询。在es里&#xff0c;如果是精准匹配是termQuery&#xff0c;比如&#xff1a; queryBuilder.filter(QueryBuilders.termQuery(“schoolId…...

多线程带来的的风险-线程安全

多线程带来的的风险-线程安全 ~~ 多线程编程中,最难的地方,也是一个最重要的地方&#xff0c;还是一个最容易出错的地方,更是一个面试中特别爱考的地方.❤️❤️❤️ 线程安全的概念 万恶之源,罪魁祸首是多线程的抢占式执行,带来的随机性.~~&#x1f615;&#x1f615;&…...

Kafka 面试题

Kafka 面试题 Q:讲一下Kafka。 Kafka 入门一篇文章就够了 Kafka的简单理解 Q:消息队列&#xff0c;有哪些使用场景及用途&#xff1f; 解耦&#xff0c;削峰&#xff0c;限流。 Q:Kafka相对其他消息队列&#xff0c;有什么特点&#xff1f; 持久化&#xff1a;Kafka的持久化…...

离线部署 python 3.x 版本

文章目录 离线部署 python 3.x 版本1. 下载版本2. 上传到服务器3. 解压并安装4. 新建软连信息5. 注意事项 离线部署 python 3.x 版本 1. 下载版本 python 各版本下载地址 本次使用版本 Python-3.7.0a2.tgz # linux 可使用 wget 下载之后上传到所需服务器 wget https://www.py…...

Java 获取豆瓣电影TOP250

对于爬虫&#xff0c;Java并不是最擅长的&#xff0c;但是也可以实现&#xff0c;此次主要用到的包有hutool和jsoup。 hutool是一个Java工具包&#xff0c;它简化了Java的各种API操作&#xff0c;包括文件操作、类型转换、HTTP、日期处理、JSON处理、加密解密等。它的目标是使…...

笔试面试相关记录(5)

&#xff08;1&#xff09;不包含重复字符的最长子串的长度 #include <iostream> #include <string> #include <map>using namespace std;int getMaxLength(string& s) {int len s.size();map<char, int> mp;int max_len 0;int left 0;int i …...

四、C#—变量,表达式,运算符(2)

&#x1f33b;&#x1f33b; 目录 一、表达式1.1 什么是表达式1.2 表达式的基本组成 二、运算符2.1 算术运算符2.1.1 使用 / 运算符时的注意事项2.1.2 使用%运算符时的注意事项 2.2 赋值运算符2.2.1 简单赋值运算符2.2.2 复合赋值运算符 2.3 关系运算符2.4 逻辑运算符2.4.1 逻辑…...

【WSN】基于蚁群算法的WSN路由协议(最短路径)消耗节点能量研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

JVM的内存分配及垃圾回收

内存分配 在了解Java的内存管理前&#xff0c;需要知道JVM中的内存分配。 栈 存储局部变量。在方法的定义中或在方法中声明的变量为局部变量&#xff1b;栈内存中的数据在该方法结束&#xff08;返回或抛出异常或方法体运行到最后&#xff09;时自动释放栈中存放的数据结构为…...

Python实现查询一个文件中的pdf文件中的关键字

要求&#xff0c;查询一个文件中的pdf文件中的关键字&#xff0c;输出关键字所在PDF文件的文件名及对应的页数。 import os import PyPDF2def search_pdf_files(folder_path, keywords):# 初始化结果字典&#xff0c;以关键字为键&#xff0c;值为包含关键字的页面和文件名列表…...

【计算机网络笔记一】网络体系结构

IP和路由器概念 两台主机如何通信呢&#xff1f; 首先&#xff0c;主机的每个网卡都有一个全球唯一地址&#xff0c;MAC 地址&#xff0c;如 00:10:5A:70:33:61 查看 MAC 地址&#xff1a; windows: ipconfig / alllinux&#xff1a;ifconfig 或者 ip addr 同一个网络的多…...

硕士应聘大专老师

招聘信息 当地人社局、学校&#xff08;官方&#xff09; 公众号&#xff08;推荐&#xff09;&#xff1a; 辅导员招聘 厦门人才就业信息平台 高校人才网V 公告出完没多久就要考试面试&#xff0c;提前联系当地院校&#xff0c;问是否招人。 校招南方某些学校会直接去招老师。…...

Gram矩阵

Gram矩阵如何计算 Gram 矩阵是由一组向量的内积构成的矩阵。如果你有一组向量 v 1 , v 2 , … , v n v_1, v_2, \ldots, v_n v1​,v2​,…,vn​&#xff0c;Gram 矩阵 G G G 的元素 G i j G_{ij} Gij​ 就是向量 v i v_i vi​ 和向量 v j v_j vj​ 的内积。数学上&#x…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初&#xff0c;人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目&#xff08;一款融合大型语言模型能力的云端AI编程IDE&#xff09;时&#xff0c;技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力&#xff0c;TRAE在WayToAGI等…...

stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数&#xff0c;如果我们没有定义实现某个中断函数&#xff0c;那么当stm32产生了该中断时&#xff0c;就会默认跑这里来了&#xff0c;所以我们打开了什么中断&#xff0c;一定要记得实现对应的系统中断函数&#xff0c;否则会进来一直循环…...

RLHF vs RLVR:对齐学习中的两种强化方式详解

在语言模型对齐&#xff08;alignment&#xff09;中&#xff0c;强化学习&#xff08;RL&#xff09;是一种重要的策略。而其中两种典型形式——RLHF&#xff08;Reinforcement Learning with Human Feedback&#xff09; 与 RLVR&#xff08;Reinforcement Learning with Ver…...