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,一经查实,立即删除!

相关文章

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

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

Pytest测试框架的基本使用

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

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

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

【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 返回左侧或右侧表中有匹…

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

现在通过二维码来分享图片是一种很常见的方法&#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 布局出来了 加上标签和容器 绑定样式 我们设置一些样式 页面展示效果 我们加入导航栏 搜索组件 我们这边把导航菜单抽象成一个公共的组件 引入好 页面中成功进行了展示 我们可以把这边替…

MySQL添加索引时会锁表吗?

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

【Vue】深入了解 Axios 在 Vue 中的使用:从基本操作到高级用法的全面指南

文章目录 一、Axios 简介与安装1. 什么是 Axios&#xff1f;2. 安装 Axios 二、在 Vue 组件中使用 Axios1. 发送 GET 请求2. 发送 POST 请求 三、Axios 拦截器1. 请求拦截器2. 响应拦截器 四、错误处理五、与 Vuex 结合使用1. 在 Vuex 中定义 actions2. 在组件中调用 Vuex acti…

免费【2024】springboot OA公文发文管理系统

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

js 实现扫雷游戏,源码开放,支持npm引入使用

本人开发的js版本扫雷游戏 体验地址 | Github Minesweeper game Sponsors Install and use npm i minesweeper-gameimport {Map} from minesweeper-game;const map new Map();Reset Map map.reset();TS Statement interface IMapOptions {width?: number; // Map sizeh…

数据实时获取方案之Flink CDC

目录 一、方案描述二、Flink CDC1.1 什么是CDC1.2 什么是Flink CDC1.3 其它CDC1.4 FlinkCDC所支持的数据库情况 二、使用Pipeline连接器实时获取数据2.1 环境介绍2.2 相关版本信息2.3 详细步骤2.3.1 实时获取MySQL数据并发送到Kafka2.3.2 实时获取MySQL数据并同步到Doris数据库…

初识C++|模板初阶

&#x1f36c; mooridy-CSDN博客 &#x1f9c1;C专栏&#xff08;更新中&#xff01;&#xff09; 目录 &#x1f349;1. 泛型编程 &#x1f349;2. 函数模板 &#x1f95d;2.1 函数模板概念 &#x1f95d;2.2 函数模板格式 &#x1f95d;2.3 函数模板的原理 &#x1f95…

万界星空科技QMS系统:全面赋能企业质量管理的创新引擎

万界星空科技质量管理QMS系统&#xff08;Quality Management System&#xff09;是一套全面、高效的质量管理工具&#xff0c;旨在帮助企业提升产品质量、优化生产流程、降低质量成本。该系统集成了多个功能模块&#xff0c;以满足企业在质量管理方面的各种需求。以下是万界星…