新闻详情

新闻详情

首页 / 资讯中心 / 详情

分布式系统开发(3)——RabbitMQ独立模块

发布时间:2026/9/26 8:07:47来源:尧图网络
分布式系统开发(3)——RabbitMQ独立模块
系列文章分布式系统开发1——MinIO 对象存储分布式系统开发2——Redis 缓存与分布式锁分布式系统开发3——RabbitMQ独立模块分布式系统开发4——DubboZookeeperRPC服务分布式系统开发5——整合所有组件分布式系统开发6——项目打包部署与Nginx代理前端前序文章windows下RabbitMQ的使用(1)——下载与安装windows下RabbitMQ的使用(2)——安装插件与创建队列按照上文先启动RabbitMQ并创建一个简单队列名为 testMQ 后文用到了这个队列如果你有自己的队列名后文对应替换就行。本文在上文分布式系统开发2——Redis 缓存与分布式锁的基础上创建本模块。版本IDEA :2026.1JDK:17maven:3.9.xrabbitMQ:4.3.x1.创建模块右击父模块点击“新建然后选择“模块”模块名为 ds-rabbit构建系统选Maven这里JDK选17然后选 创建。创建完后想结构如下2.增加依赖点击当前模块ds-rabbit模块的依赖文件pom.xml然后增加下面的依赖dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId/dependency/dependencies增加完以后注意刷新一下更新一下依赖。3. 新增配置文件还是遵循“谁用谁配置”的原则本模块会写关于rabbitMQ的配置最后整合的时候会删除这些配置。右击当前模块的resources文件夹选择“新建”然后选择“文件”文件名为application.yml配置文件参考如下server:port:8083spring:rabbitmq:host:localhostport:5672username:guestpassword:guestvirtual-host:/注意这里的用户名、密码、端口号和你实际的rabbitMQ的配置一样。4.新增配置类右击当前模块main文件夹下的java文件夹选择“新建”然后选择 “软件包”软件包名为com.guo.mq.config创建完后继续右击config文件夹选择“新建”然后选择“Java类”类名为:RabbitMQConfig类的参考代码如下packagecom.guo.mq.config;importorg.springframework.amqp.core.*;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;ConfigurationpublicclassRabbitMQConfig{// 统一队列名publicstaticfinalStringHELLO_QUEUEtestMQ;publicstaticfinalStringEXCHANGEdemo.exchange;publicstaticfinalStringROUTING_KEYdemo.routing;BeanpublicQueuehelloQueue(){// 简单持久化关闭、hello 标准模式returnnewQueue(HELLO_QUEUE,false);}BeanpublicDirectExchangeexchange(){returnnewDirectExchange(EXCHANGE);}BeanpublicBindingbinding(Queuequeue,DirectExchangeexchange){returnBindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);}}注意HELLO_QUEUE后面的跟的队列的名字一定要和你实际的队列名一致。其他两处EXCHANGE 、ROUTING_KEY 本文没有使用只简单配置了。5.新增消费者右击当前模块的mq文件夹选择“新建”然后选择“软件包”包名为com.guo.mq.consumer然后右击刚才创建的consumer文件夹选择“新建”然后选择“Java类”类名为:MessageConsumer参考代码如下packagecom.guo.mq.consumer;importcom.guo.mq.config.RabbitMQConfig;importorg.springframework.amqp.rabbit.annotation.RabbitListener;importorg.springframework.stereotype.Component;ComponentpublicclassMessageConsumer{RabbitListener(queuesRabbitMQConfig.HELLO_QUEUE)publicvoidreceive(Stringmessage){System.out.println(【消费者收到】message);}}6.新增/修改启动类右击当前模块的mq文件夹选择“新建”然后选择“Java类”类名为RabbitMQApplication参考代码如下packagecom.guo.mq;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplicationpublicclassRabbitMQApplication{publicstaticvoidmain(String[]args){SpringApplication.run(RabbitMQApplication.class,args);}}7.新增测试代码右击当前模块的测试部分test文件夹下的java文件夹选择“新建”然后选“Java类”类名为RabbitMQAppliactionTests参考代码如下importcom.guo.mq.RabbitMQApplication;importcom.guo.mq.config.RabbitMQConfig;importorg.junit.jupiter.api.Test;importorg.springframework.amqp.rabbit.core.RabbitTemplate;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;SpringBootTest(classesRabbitMQApplication.class)publicclassRabbitMQAppliactionTests{AutowiredprivateRabbitTemplaterabbitTemplate;TestvoidsendHelloMsg()throwsInterruptedException{StringmsgHello World RabbitMQ;rabbitTemplate.convertAndSend(RabbitMQConfig.HELLO_QUEUE,msg);System.out.println(【测试生产者发送完成】msg);}}8.执行测试点击测试代码可以看到向RabbitMQ发送了消息消费者也收到了消息。本文参考代码如1百度网盘通过网盘分享的文件ds-demo(3).zip链接: https://pan.baidu.com/s/1K3I2DSd7cyHy8EB6Iktmzg?pwdakv3 提取码: akv32我用夸克网盘给你分享了「ds-demo(3).zip」点击链接或复制整段内容打开「夸克APP」即可获取。/6aae3b5736链接https://pan.quark.cn/s/3d5866a34d21?pwdN415提取码N415
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

CTF夺旗赛新手入门:Web、逆向、盲注与Misc实战指南 2026/9/26 11:33:17

CTF夺旗赛新手入门:Web、逆向、盲注与Misc实战指南

1. 从零理解CTF夺旗赛:它到底是什么,新手该怎么切入很多人第一次听到“CTF夺旗赛”这个词,脑子里浮现的是两拨人举着旗子互相冲锋的画面。其实CTF(Capture The Flag)在网络安全领域里,指的是一种以解题或攻…

阅读更多 →
蓝印RPA虚拟桌面隔离执行:自动化任务不干扰办公的本地化部署方案 2026/9/26 11:33:04

蓝印RPA虚拟桌面隔离执行:自动化任务不干扰办公的本地化部署方案

这次我们来看一个 RPA 工具的新玩法:蓝印 RPA 在虚拟桌面内执行自动化任务。常规思路是 RPA 机器人直接在你正在使用的桌面上操作,结果往往是脚本跑得欢,你手里的活被频繁抢焦点、鼠标乱跳,甚至误点弹窗。蓝印 RPA 的做法是把自动…

阅读更多 →
VS2017下预编译GDAL包配置指南:ABI锁版、避坑与重编译 2026/9/26 11:33:04

VS2017下预编译GDAL包配置指南:ABI锁版、避坑与重编译

简介:面向Visual Studio 2017开发者的预编译GDAL库资源包,解决地理空间数据处理中繁琐的编译配置难题。GDAL作为开源地理空间数据抽象库,支持栅格与矢量数据的读写、转换及空间操作,广泛应用于GIS开发、遥感与地图制图领域。资源共…

阅读更多 →
学术版 Codex 配 TaoToken:settings.json 骨架与报错排查指南 2026/9/26 11:33:04

学术版 Codex 配 TaoToken:settings.json 骨架与报错排查指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
sentrux MCP九大工具API详解:scan、health、evolution、dsm、test_gaps完整参考手册 2026/9/26 11:33:04

sentrux MCP九大工具API详解:scan、health、evolution、dsm、test_gaps完整参考手册

sentrux MCP九大工具API详解:scan、health、evolution、dsm、test_gaps完整参考手册 【免费下载链接】sentrux Real-time architectural sensor that helps AI agents close the feedback loop, enabling recursive self-improvement of code quality. Pure Rust. …

阅读更多 →
JeeWMS开源WMS系统部署与二次开发实战指南 2026/9/26 11:33:04

JeeWMS开源WMS系统部署与二次开发实战指南

简介:JeeWMS仓库管理系统是一套面向第三方物流、冷链、工厂仓储及海外仓场景的Java WMS解决方案。系统基于Java Web后台与Uni-App PDA端开发,完整覆盖订单管理(OMS)、仓储管理(WMS)、计费管理(B…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉