5.java操作RabbitMQ-简单队列

1.引入依赖

<!--rabbitmq依赖客户端-->
<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId>
</dependency>

 操作文件的依赖

<!--操作文件流的一个依赖-->
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version>
</dependency>

 信道channel声明队列方法详解:

信道channel发送消息:

2.生产者代码

package com.xkj.org.mq;import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;import java.io.IOException;
import java.util.concurrent.TimeoutException;/*** 生产者:发消息*/
public class Producer {private static final String QUEUE_NAME = "hello";public static void main(String[] args) throws IOException, TimeoutException {//创建连接工厂ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost("192.168.171.128");connectionFactory.setUsername("admin");connectionFactory.setPassword("123");//创建连接Connection connection = connectionFactory.newConnection();//创建信道Channel channel = connection.createChannel();//采用默认交换机,所以可以先不定义/**声明队列 *///第一个参数,队列名称//第二个参数,队列里面的消息是否持久化,是表示存于磁盘上,默认存在内存中。//第三个参数,是否共享,该队列是否只供一个消费者进行消费,是否消息共享,true表示可以被多个消费者消费//第四个参数,是否自动删除队列,最后一个消费者断开连接以后,该队列是否自动删除,true自动删除//第五个参数,其他参数channel.queueDeclare(QUEUE_NAME, false, false, false, null);//发送的消息内容String message = "hello world rabbit mq";/**发送消息 *///第一个参数:发送到那个交换机,本次不写,使用默认交换机//第一个参数:路由的key值routingKey,本次是队列名称//第一个参数:其他参数//第一个参数:消息内容channel.basicPublish("", QUEUE_NAME, null, message.getBytes());System.out.println("消息发送完毕");}
}

生产者发送消息成功以后:

可以看出队列hello中有一个消息正准备被消费。

3.消费者代码

package com.xkj.org.mq;import com.rabbitmq.client.*;import java.io.IOException;
import java.util.concurrent.TimeoutException;/*** 消费者*/
public class Consumer {private static final String QUEUE_NAME = "hello";public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost("192.168.171.128");connectionFactory.setUsername("admin");connectionFactory.setPassword("123");Connection connection = connectionFactory.newConnection();Channel channel = connection.createChannel();// 声明接收消息的回调DeliverCallback deliverCallback = (consumerTag, message) -> {System.out.println("接收到消息:" + new String(message.getBody()));};// 取消消息时的回调CancelCallback cancelCallback = consumerTag -> {System.out.println("消息消费被中断");};/*** 消费者消费消息* 1.第一个参数,消费那个队列* 2.第二个参数,消费成功之后是否要自动应答,true表示自动应答,false表示手动应答* 3.第三个参数,消费者成功消费的回调* 4.第四个参数,消费者取消消费的回调*/channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【整理了一些关于使用swoole使用的解决方案】

目录 如何监控和分析 Swoole 服务器的性能瓶颈&#xff1f; 在进行 Swoole 服务器性能优化时&#xff0c;有哪些常见的错误和陷阱需要避免&#xff1f; 除了 Swoole&#xff0c;还有哪些 PHP 框架或技术可以用于构建高并发的 Web 应用&#xff1f; Swoole 同步请求在高并发…

如何在 Mac 上下载安装植物大战僵尸杂交版? 最新版本 2.2 详细安装运行教程问题详解

植物大战僵尸杂交版已经更新至2.2了&#xff0c;但作者只支持 Windows、手机等版本并没有支持 MAC 版本&#xff0c;最近搞到了一个最新的杂交 2.2 版本的可以在 Macbook 上安装运行的移植安装包&#xff0c;试了一下非常完美能够正常在 MAC 上安装运行&#xff0c;看图&#x…

MFC:只允许产生一个应用程序实例的具体实现

在MFC&#xff08;Microsoft Foundation Class&#xff09;应用程序中&#xff0c;如果你想限制只允许产生一个应用程序实例&#xff0c;通常会使用互斥体&#xff08;Mutex&#xff09;来实现。这可以确保如果用户尝试启动第二个实例时&#xff0c;它会被阻止或将焦点返回到已…

Pytest测试框架的基本使用

目录 安装教程 Pytest命名约束 创建测试用例 执行测试用例 生成测试报告 参数化测试 pytest框架 pytest是目前非常成熟且功能齐全的一个测试框架&#xff0c;能够进行简单的单元测试和复杂的功能测试。还可以结合selenium/appnium进行自动化测试&#xff0c;或结合reques…

加拿大上市药品查询-加拿大药品数据库

在加拿大&#xff0c;药品的安全性、有效性和质量是受到严格监管的。根据《食品药品法案》的规定&#xff0c;所有药品制造商必须提供充分的科学证据&#xff0c;证明其产品的安全性和有效性。为此&#xff0c;加拿大卫生部建立了一个全面的药品数据库 &#xff08;DPD) &#…

读取 Excel 文件

以下是一个示例&#xff0c;展示如何使用 OpenPyXL 读取 Excel 文件并打印其内容&#xff1a; import openpyxl# 打开一个已有的工作簿 workbook openpyxl.load_workbook("sample.xlsx")# 获取活动的工作表或指定工作表 sheet workbook.active # 或者使用 sheet …

【C++】类和对象——默认成员函数(下)

目录 前言拷贝构造1.概念2.特征3.总结 赋值重载运算符重载赋值运算符重载探讨传引用返回和传值返回的区别 const成员取地址及const取地址操作符重载 前言 上一讲我们已经说了关于C的默认成员函数中的两个——构造和析构函数。所谓默认成员函数也就是&#xff1a;用户没有显示定…

你的Type-c接口有几颗牙齿

C 口为啥不能混用 想想 C 口当年推出时给我们画的饼&#xff0c;“正反都能插&#xff0c;而且充电、传数据、连显示器等等&#xff0c;什么活都能干”&#xff0c;而实现这一切的前提全靠 C 口里面的 24 根针脚 这 24 根真叫呈中心对称分布&#xff0c;这种设计使得插头可以以…

iPhone手机上备忘录怎么设置字数显示

在日常生活和工作中&#xff0c;我经常会使用iPhone的备忘录功能来记录一些重要的想法、待办事项或临时笔记。备忘录的便捷性让我可以随时捕捉灵感&#xff0c;但有时候&#xff0c;我也会苦恼于不知道自己记录了多少内容&#xff0c;尤其是在需要控制字数的时候。 想象一下&a…

机器学习 | 深入理解激活函数

什么是激活函数&#xff1f; 在人工神经网络中&#xff0c;节点的激活函数定义了该节点或神经元对于给定输入或一组输入的输出。然后&#xff0c;将此输出用作下一个节点的输入&#xff0c;依此类推&#xff0c;直到找到原始问题的所需解决方案。 它将结果值映射到所需的范围…

【功能】DOTween动画插件使用

一、下载安装DOTween插件&#xff0c;下载地址&#xff1a;DOTween - Asset Store (unity.com) 使用 Free免费版本即可&#xff0c;导入成功后&#xff0c;Project视图中会出现 DOTween 文件夹 二、使用案例 需求1&#xff1a;控制材质球中的某个属性值&#xff0c;实现美术需…

SQL执行流程、SQL执行计划、SQL优化

select查询语句 select查询语句中join连接是如何工作的&#xff1f; 1、INNER JOIN 返回两个表中的匹配行。 2、LEFT JOIN 返回左表中的所有记录以及右表中的匹配记录。 3、RIGHT JOIN 返回右表中的所有记录以及左表中的匹配记录。 4、FULL OUTER JOIN 返回左侧或右侧表中有匹…

腾讯云发送短信验证码

1、在腾讯云平台中 开通短信服务 2、发送短信 2.1引用jar包 <dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java-sms</artifactId><version>3.1.1043</version> </dependency>2.2 发送短…

二维码如何用来存储图片?扫码看图有哪些好处

现在通过二维码来分享图片是一种很常见的方法&#xff0c;二维码可以承载大量的图片内容&#xff0c;从而节省对图片空间容量的占用&#xff0c;并且将图片放入二维码中便于分享让图片传递变得更加方便快捷&#xff0c;那么图片生成二维码具体该怎么操作呢&#xff1f;通过下面…

MySQL----初始数据类型

前言 一、tinyint 范围&#xff1a;-128-----127 在MySQL中&#xff0c;整型可以指定是有符号的和无符号的&#xff0c;默认是有符号的。可以通过UNSIGNED来说明某个字段是无符号的。如果我们向mysqlt特定的类型中插入不合法的数据&#xff0c;Mysq一般会直接拦截&#xff0c…

云计算实训06——find、stat、touch、tree、scp、crontab指令相关应用

一、find命令 1.find的作用&#xff1a;对文件进行搜索 2. 基本语法&#xff1a; find [文件路径] [选项 选项的值 ] 3.常见的选项 -name 根据文件的名称搜索文件&#xff0c;支持通配符 * -type f 代表普通文件&#xff0c;-type d 代表目录 4.* 通配符 在 linux 系统…

多多OJ评测系统 前端页面通用布局开发与优化 调整布局

目录 我们重新布局样式 个人习惯写一个最外层的样式 Header Content Footer 布局出来了 加上标签和容器 绑定样式 我们设置一些样式 页面展示效果 我们加入导航栏 搜索组件 我们这边把导航菜单抽象成一个公共的组件 引入好 页面中成功进行了展示 我们可以把这边替…

项目管理_XX市XX区人民医院HRP信息系统建设项目(成本管理)实例

项目管理_XX市XX区人民医院HRP信息系统建设项目(成本管理)实例 本文将通过 XX市XX区人民医院HRP信息系统建设项目实例 来论述 成本管理 在其中的作用。 成本管理定义 信息系统项目管理师教材定义: 项目成本管理工作是在项目实施过程中&#xff0c;通过项目成本管理尽量使项…

【深度学习图像】拼接图的切分

用户常常将多张图拼成一张图。 如果将这张图拆为多个子图&#xff0c;下面是一种opencv的办法&#xff0c;后面要训练一个模型来识别边缘更为准确。 import osimport cv2 import numpy as npdef detect_lines(image_path):# 读取图片image cv2.imread(image_path)if image i…

MySQL添加索引时会锁表吗?

目录 简介Online DDL概念Online DDL用法总结 简介 在MySQL5.5以及之前的版本&#xff0c;通常更改数据表结构操作&#xff08;DDL&#xff09;会阻塞对表数据的增删改操作&#xff08;DML&#xff09;。 MySQL5.6提供Online DDL之后可支持DDL与DML操作同时执行&#xff0c;降低…