新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/11/12 23:17:57来源:尧图网络
分布式系统开发(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

相关资讯

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

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/11 13:52:51

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/10 19:42:40

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/12 9:50:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/12 9:25:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/12 15:57:44

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/10 17:14:10

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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