activemq安装windows环境,数据订阅与发布,生产者与消费者

news2024/11/20 17:39:31

官网下载,选择适合本地jdk编译环境的部署包 

安装完成后解压到指定目录,目录不要包含中文,否则可能启动不成功。

解压完成后找到指定路径

双击即可运行 ,见到如下界面启动成功

 访问本地管理页面http://127.0.0.1:8161/

输入账号密码进入管理页面

这时候还没有客户端连接,需要编写一个生产者,生产数据

再编写一个客户端,消费数据

 先看生产者

因为activemq支持多种消息协议,这里我们选择mqtt

1.创建一个java项目

2.创建lib目录

3.引入mqttclientjar包

目录结构可如下:

 4.编写生产者代码

private static void pub(MqttClient sampleClient, String msg,String topic) 
			throws MqttPersistenceException, MqttException {
		MqttMessage message = new MqttMessage(msg.getBytes());
		message.setQos(qos);
		message.setRetained(false);
		  sampleClient.publish(topic, message);
		  sampleClient.setCallback(new PubCallback());
//		  MqttTopic top = sampleClient.getTopic(topic);
//		  top.publish(message);
		
	}
	
	public static void publish(String str,String clientId,String topic) throws MqttException{
		MqttClient mqttClient = new SubMsg().connect(clientId);
 
		if (mqttClient != null) {
			pub(mqttClient, str, topic);
			System.out.println("生产者发布:"+topic+"主题消息=" + str);
		}
 
//		if (mqttClient != null) {
//			mqttClient.disconnect();
//		}
	}

5.执行代码结果

 6.查看平台中数据

7. 编写数据消费端代码

链接并订阅主题

SubMsg.runsub(PropertiesUtil.activemq_clientname,PropertiesUtil.activemq_topic);

接收生产者发布的数据

	public void messageArrived(String topic, MqttMessage message) throws Exception {
		String msg = new String(message.getPayload(),"utf-8");
		System.out.println("客户端"+PropertiesUtil.activemq_clientname+"(订阅者)接收到"+topic+"主题消息:" + msg);
		SimpleDateFormat format=new SimpleDateFormat("yyMMdd");
		File file=new File(PropertiesUtil.file_dir+format.format(System.currentTimeMillis())+".txt");
		File dir = new File(PropertiesUtil.file_dir);
		if(!dir.exists())dir.mkdirs();
		FileOutputStream fos = new FileOutputStream(file, true);
		fos.write(("客户端"+PropertiesUtil.activemq_clientname+"(订阅者)接收到"+topic+"主题消息:\n"+msg+"\n").getBytes("UTF-8"));
		fos.close();
	}

接收数据 

 

当前链接 

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

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

相关文章

SpringBoot全局异常处理

1、异常处理的种类 我大概把一次请求分成三个阶段,来分别进行全局的异常处理。 在进入Controller之前,譬如请求一个不存在的地址,404错误。在执行RequestMapping时,进入逻辑处理阶段前。譬如传的参数类型错误。以上都正常时&…

升级Win11系统卡在了35%怎么解决?

升级Win11系统卡在了35%怎么解决?Windows11是微软开发的电脑的最新操作系统,不少人都会选择更新到Windows11,但是进行更新安装对很多人来讲并不是一件很简单的事情,不少人都在抱怨安装时常常卡在35%或85%,并且带有一个…

Java.Util复习贴

参加了数次竞赛之后,我发现我的瓶颈所在——语法。于是今天来复习一下常用的Java库函数吧。 比赛中用java8还是10我就不care啦,我直看官方最新文档。地址在 https://docs.oracle.com/javase/10/docs/api/java/util/package-summary.html 首先看到java.…

排序——插入排序、希尔排序

目录 一.插入排序 1.实现 2.时间复杂度 二.希尔排序 2.预排序 (1).单次预排序的实现 (2).相对有序 2.代码 一.插入排序 1.实现 正如其名,是将第n1个数据插入到前面的n的升序(降序)数据中,形成一个n1大小的升序&#xff0…

用于宏观经济数据分析的神经网络(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 宏观经济时间序列的分析和预测是国家决策者非常感兴趣的因素。然而,由于缺乏精确的经济模型和外部因素&#xff08…

浏览器隐藏滚动条(不影响内容滚动)

系列文章目录 文章目录系列文章目录一、背景和效果图如下:1.背景2.设置属性前效果图:2.设置后效果图:二、直接通过CSS修改样式,保存滑动功能1.全局设置滚动条如下(所有的都被隐藏)Css代码如下效果图如下2.给…

DP1363F高度集成的非接触读写芯片 13.56M NFC/RFID读卡器芯片 兼容替代CLRC663

DP1363F高度集成的非接触读写芯片 13.56M NFC/RFID读卡器芯片 兼容替代CLRC663 DP1363F是一款高度集成的非接触读写芯片,集强大的多协议支持、最高射频输出功率,以及突破性技术低功耗卡片检测等优势于一身,满足市场对更高集成度、更小外壳和…

Mybatis 异常总结

java.sql.SQLSyntaxErrorException: #42000 一般发生在修改 删除中 原因可能是 传入的参数与 sql 语句不匹配 It’s likely that neither a Result Type nor a Result Map was specified 异常分析: 关键在第一段提示: It’s likely that neither a Re…

Yolov5移植树莓派4B问题总结

Hallo,大家好啊!之前出过几篇文章关于Yolov5的,不得不说Yolov5的识别率真的很高,对个体检测很有帮助,如果大家训练完之后会发现获得一个pt文件,这就是训练好的模型。但是,这个模型只能够在自己的…

Golang 【basic_leaming】2 语言容器

阅读目录Go 语言数组_定义_初始化_遍历定义数组Go 语言初始化数组Go 语言遍历数组参考文献Go 语言切片(Slice)初始化_删除元素_遍历什么是切片声明切片使用 make() 函数构造切片使用 append() 函数为切片添加元素从数组或切片生成新的切片从指定范围中生…

Unreal Engine中的UHT和UBT

UBT:附加在引擎之外的一个自定义工具,用于管理跨各种构建配置,来配置和构建UE源码的过程。 UHT: 目录 UBT(UnrealBuilderTool) UHT(UnrealHeadTool) UBT(UnrealBuilder…

《第三堂棒球课》:MLB棒球创造营·棒球名人堂

田中将大 田中将大(Tanaka Masahiro),1988年11月1日出生于兵库县伊丹市,日本职业棒球运动员。 在2006年日本职棒高中生选秀会上被东北乐天金鹰队第一指选中,此后开始职业生涯。在2014年被纽约洋基队以上亿巨额签约,期限为七年。…

混合云运维,实现批量自动化配置

随着企业业务规模扩大和复杂化及云计算、大数据等技术不断发展,企业希望通过上云加速其数字化转型,以私有云为数据存储,保障安全,同时兼顾公有云的计算资源,公有云和私有云融合,混合云逐渐成为企业的大多数…

SpringBoot改动后0.03秒启动

SpringBoot改动后0.03秒启动 一、概述 GraalVM 是一种高性能运行时,可显着提高应用程序性能和效率,非常适合微服务. 对于 Java 程序 GraalVM 负责将 Java 字节码编译成机器码,映像生成过程使用静态分析来查找可从主 Java 方法访问的任何代码…

详细讲解MySQL在Linux中的部署(Centos为例)

本篇文章详解Mysql在Linux中的部署,以便于能够在SQLyog中远程连接MySQL服务,具体步骤如下所示: 1.查找并卸载mariadb 由于Centos7中自带mariadb,而mariadb是MySQL的一个分支,因此,按照MySQL前必须卸载mar…

【C++初阶】string的模拟实现

文章目录string的介绍string的模拟实现string类的成员变量Member functionsconstructor(构造函数)destructor(析构函数)operator(给创建出来的对象赋值)Iterators(迭代器)beginendCapacitysizecapacityrese…

Oracle --- 基础

目录 启动Oracle Oracle监听 监听服务的主要文件 listener.ora tnsnames.ora sqlnet.ora Oracle用户 创建用户 启动Oracle 四步 su - oracle # 切换用户,进入oracle的用户,读取oracle的配置文件lsnrctl start # 启…

手把手教您从建模到仿真计算优化改进新能源汽车电驱动系统转子冲片强度

导读:新能源汽车电驱动系统的主驱电机,正在向高功率密度、高扭矩密度、高效率、低成本、低损耗、轻量化、小型化、集成化、系列化等方向发展。这给各大零部件供应商,提出了一个又一个的新问题和新挑战。 为了降低结构尺寸、重量、原材料成本…

帮你拿下offer的软件测试面试技巧 赶紧码住!

想要进入一家软件类公司,拿到软件测试这方面岗位的offer,除了专业的技术知识过硬之外,必要的软件测试面试技巧也是少不了的,那么测试人们在面试过程中又应该如何作答呢? 这些可以帮你拿下offer的软件测试面试技巧记得不…

北斗导航 | ION GNSS+ 2014到 ION GNSS+ 2017会议论文下载:ION 美国导航学会

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 后文有 ION GNSS+ 2014、2015、2016、2017论文下载百度云链接美国导航学…