当前位置: 首页 > article >正文

(七)Spring Cloud Alibaba 2023.x:RocketMQ 消息队列配置与实现

目录前言准备安装RocketMq服务下载rocketmq服务下载rocketmq 控制台项目集成引入依赖生产者服务配置消费者服务配置发送队列消息前言在微服务架构中异步消息通信是实现系统解耦、提高性能和增强系统可靠性的重要手段。在 Spring Cloud Alibaba 生态中RocketMQ 与 Spring Boot 深度集成提供了开箱即用的消息通信解决方案极大地简化了开发流程提升了系统的扩展性和可维护性 。准备jdk17maven3.9.4idea2023spring cloud: 2023.0.1.0spring cloud alibaba: 2023.0.1源码获取GitHub - /spring-cloud-alibaba-base-demo: 基于spring cloud alibaba生态快速构建微服务脚手架安装RocketMq服务本地window系统安装rocketmq服务下载rocketmq服务当前博文版本使用的是5.2官方下载地址下载 | RocketMQ百度网盘地址百度网盘 请输入提取码 提取码: 92h6下载完成解压在window系统中本地启动rocketmq服务需要配置环境变量步骤和配置与jdk配置相似Path变量中添加环境变量配置完成后进入本地rocketmq的bin文件夹中首先双击mqnamesrv.cmd启动NameServer服务: 它的作用是提供服务发现、路由信息管理、Broker注册和客户端查询等功能NameServer服务启动成功后启动Broker服务它的作用是消息的存储和传递当前文件夹cmd执行命令mqbroker -n localhost:9876下载rocketmq 控制台当前博文版本使用的是2.0.1官方下载地址Releases · apache/rocketmq-dashboard百度网盘地址百度网盘 请输入提取码 提取码: 92h6下载完成解压需要我们自行对项目打包获取jar包在当前文件夹中cmd执行命令打包mvn clean package -Dmaven.test.skiptrue在target文件中找到生成的jar执行命令启动java -jar rocketmq-dashboard-2.0.1.jar浏览器访问地址http://localhost:8080注:如果rocketmq的服务地址或者端口进行过调整那么在打包前自行到项目的application.yml配置文件中更改后再打包项目集成根据前面的博文目前我们已经创建了三个微服务引入依赖分别在子模块生产者和消费者服务的pom.xml文件中引入依赖!-- 引入消息队列 stream rocketmq -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-stream-rocketmq/artifactId /dependency生产者服务配置yml文件配置spring: application: name: http-cloud-producer cloud: stream: #消息中间件 rocketmq: binder: name-server: localhost:9876 bindings: producer-out-0: producer: group: output_1 bindings: producer-out-0: destination: topic0 producer-out-1: destination: topic1相关参数/值解释:output_1 :自定义的消费者组名称producer-out-0 自定义的生产者通道名称topic0 自定义队列名称生成者发送消息服务类实现Service public class MessageProducer { // 自动注入配置文件中绑定的通道 Autowired private StreamBridge streamBridge; // 消息通道 public void sendMessageToOutput0(String messageContent) { MapString, Object headers new HashMap(); headers.put(MessageConst.PROPERTY_TAGS, tag0); MessageString msg new GenericMessage(messageContent, headers); streamBridge.send(producer-out-0, msg); } public void sendMessageToOutput1(String messageContent) { MapString, Object headers new HashMap(); headers.put(MessageConst.PROPERTY_TAGS, tag1); MessageString msg new GenericMessage(messageContent, headers); streamBridge.send(producer-out-1, msg); } }定义控制层接口RestController public class DemoController { Autowired private MessageProducer messageProducer; /** * 发送消息队列 topic0 * param message * return */ GetMapping(value /test/mq/topic0) String sendMqTopic0(RequestParam(message) String message) { messageProducer.sendMessageToOutput0(message); return topic0消息发送成功了~~~; } /** * 发送消息队列 topic1 * param message * return */ GetMapping(value /test/mq/topic1) String sendMqTopic1(RequestParam(message) String message) { messageProducer.sendMessageToOutput1(message); return topic1消息发送成功了~~~; } }消费者服务配置配置yml文件spring: application: name: http-cloud-consumer cloud: stream: #消息中间件 rocketmq: binder: name-server: localhost:9876 bindings: consumer0-in-0: consumer: messageModel: CLUSTERING consumer1-in-0: consumer: messageModel: CLUSTERING bindings: consumer0-in-0: destination: topic0 group: clustering-consumer consumer1-in-0: destination: topic1 group: clustering-consumer相关配置解释consumer0-in-0自定义的消费者通道名称messageModel消费者消费模式集群或者是广播。本文配置的是集群模式。topic0 需要监听的消费者队列名称clustering-consumer 自定义的消费者组名称实现消费者mq消费类Component public class MessageConsumer { /** * 通过方法名称自动绑定到符合条件的消费者通道 * 注当前遇到的难点是一个消费者服务只能实现一个消费方法实现多个消费方法会使消费功能失效 * return */ Bean public ConsumerMessageString consumer1() { return msg - { System.out.println(Thread.currentThread().getName() Consumer1 Receive New Messages: msg); }; } }注从配置可以看到消费者监听了2个队列但上面的MessageConsumer 类只有一个消费方法目前版本mq会自动将配置在第一个的队列和上面的方法绑定但是如果需要监听对多队列并进行消费目前版本博主还未找到实现方案后续有方案再补上。发送队列消息请求接口给队列topic0发送消息查看消费者服务控制台打印成功查看rocketMq控制台消息记录至此Spring Cloud Alibaba集成RocketMq消息队列完成了。

相关文章:

(七)Spring Cloud Alibaba 2023.x:RocketMQ 消息队列配置与实现

目录 前言 准备 安装RocketMq服务 下载rocketmq服务 下载rocketmq 控制台 项目集成 引入依赖 生产者服务配置 消费者服务配置 发送队列消息 前言 在微服务架构中,异步消息通信是实现系统解耦、提高性能和增强系统可靠性的重要手段。在 Spring Cloud Alib…...

(CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑:**在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问; **什么叫灰度:**发布后让部分用户使用新版本,其它用户使用旧版本&am…...

企业碳排放权交易会计信息处理规范 免费下载

企业碳排放权交易会计信息处理规范(T/GDES 1—2016) 一、团体官方承诺 广东省节能减排标准化促进会发布的T/GDES 1—2016《企业碳排放权交易会计信息处理规范》团体标准遵循开放、公平、透明、协商一致和促进贸易和交流的原则,按照在本平台…...

鸿蒙原生应用开发进阶之路:Flutter工程师的鸿蒙转型与金融/保险应用实战

引言 随着鸿蒙系统(HarmonyOS)的持续演进和生态扩张,其“一次开发,多端部署”的理念吸引了众多开发者的目光。对于拥有Flutter开发经验的工程师而言,鸿蒙原生开发既是新的机遇,也是技术升级的挑战。特别是…...

什么是 OpenClaw

OpenClaw(曾用名 Clawdbot、Moltbot)是一款开源的个人 AI 助手平台,于 2026 年初在GitHub 上迅速走红,成为近年来增长最快的开源项目之一。它能够在用户自己的设备上本地运行,通过 WhatsApp、Telegram、Discord、飞书、…...

端侧AI 的定义与发展背景

大模型技术经历了参数竞赛与生成能力的突破后,行业焦点已从纯粹的“模型能力”转向“落地能力”。回顾人工智能近年来的发展,其主战场正经历一次深刻的转移。随着技术逐渐趋于同质化,AI 的下一步竞争,不再是“谁的模型更强”&…...

OmoFun 1.1.4 | 追番神器官方APP下载.官网入口

OmoFun动漫(又称“动漫共和国”)是一个深受二次元爱好者喜爱的高品质动漫聚合平台,致力于为用户提供全方位、无广告的沉浸式追番体验。该平台由专业团队运营,拥有庞大的内容储备,涵盖日本新番、国产原创动画、欧美热门…...

打卡信奥刷题(2949)用C++实现信奥题 P5878 奖品

P5878 奖品 题目描述 学校刚开完运动会,准备为尽可能多的同学评奖,并为每个人颁发一份奖品。一份奖品包括 NNN 个物品,如:555 支铅笔、101010 本练习薄等。每份奖品完全一样。虽然学校的保管室里还有一些办去年运动会后剩余的物品…...

某奢侈品品牌虚拟零售AI架构案例:用AI驱动的高端服务提升品牌价值

某奢侈品品牌虚拟零售AI架构案例:用AI驱动的高端服务提升品牌价值 引言:当奢侈品遇上AI,重新定义“高端服务” 凌晨1点,巴黎近郊的LuxuryX虚拟私域门店里,用户Elsa(一位连续3年的VVIP)正对着屏幕…...

Python基于flask-django考研学习系统的设计与实现

目录系统需求分析技术选型系统模块设计开发流程关键问题解决参考资源项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统需求分析 明确考研学习系统的核心功能需求,包括用户管理、学习资源…...

关于keil中编译器版本,也就是库不兼容问题的解决办法

问题现象:Error: C9511E: Unable to determine the current toolkit. Check that ARM_TOOL_VARIANT is set correctly. Check that your license details are correct in the License Management dialog of MDK. Additional information is available at:http://www…...

【最全】2026年OpenClaw(Clawdbot)本地6分钟部署及使用喂饭级流程

【最全】2026年OpenClaw(Clawdbot)本地6分钟部署及使用喂饭级流程。OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架,凭借724小时在线响应、多任务自动化执行、跨平台协同等核心能力,成为…...

【有参考文献】事件触发模型 可实现倒立摆控制仿真实验 simulink模型可直接运行

【有参考文献】事件触发模型 可实现倒立摆控制仿真实验 simulink模型可直接运行 含详细参考文献倒立摆这个玩具般的控制对象,总能让工程师们玩得停不下来。它那摇摇欲坠的姿态就像在挑衅:"有本事就来稳住我啊!"传统控制方法像永不停…...

电脑端制作泳道图超便捷 零基础快速做出专业业务流程图

在企业管理、软件开发、流程梳理等工作场景中,泳道图作为一种清晰呈现多角色、多部门协作流程的可视化图表,被广泛应用于需求分析、业务流程优化、系统设计等环节。对于职场从业者和开发者而言,快速绘制出规范、专业的泳道图,能够…...

数据中心U位管理与DCIM、ITAM/CMDB系统的协同机制及实践路径

摘要:在数据中心数字化、集约化运维趋势下,机柜U位作为物理资源的核心计量单元,其精细化管理水平直接影响数据中心资产利用率、运维效率及业务连续性。本文从数据中心运维架构出发,系统剖析U位管理的核心价值,明确其与…...

LLM的可信度边界--人类思考的可信边界

本文为个人想法分享,是一种幻觉创作,只图一乐。作者自愿放弃全部内容的一切权利,不作任何原创确权;内容由 AI 辅助生成,未参考任何特定文章,仅使用公有科学公式 / 概念,非商用,尊重所…...

ssm+java2026年毕设社区外来人员【源码+论文】

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于社区警务管理问题的研究,现有研究主要以传统纸质档案管理和单一功能的信息化系统为主,专门针对社区…...

MySQL迁移中的兼容性实践难点复盘:从语法一致到行为对齐

MySQL迁移中的兼容性实践难点复盘:从语法一致到行为对齐 在当前信创项目加速落地的背景下,金仓数据库(KingbaseES)因其对MySQL生态的深度适配能力,正被大量金融、政务及央国企单位纳入核心系统替换评估范围。然而&…...

在pyCharm 中命令打包生成exe文件方法

在 PyCharm 中打包 Python 文件,最常用、最可靠的方法是结合使用 PyInstaller 工具。针对你之前编写的生成 UFF 文件的脚本,下面我会介绍两种在 PyCharm 中操作的方式,并重点说明如何确保依赖项(如 numpy, pyuff)和可能…...

gorm底层框架解析

我来为您解析 GORM 底层框架的核心原理和架构设计。这是一个深度技术话题,让我系统性地拆解:GORM 架构全景 ┌─────────────────────────────────────────┐ │ Application Layer │ │…...

leijmdas的godi注入方式先进性

leijmdas 的 godi 框架具体的依赖注入实现方式,给你准确的技术细节。 我来详细介绍 leijmdas 的 godi 框架的依赖注入方式。这是一个基于 代码生成 的工业级 DI 框架,设计非常独特。godi 的核心注入方式1. 结构体标签驱动注入(Tag-Based Inje…...

基于单片机的超声波水塔液位测量系统protues仿真 本设计基于单片机的超声波水塔液位测量和智...

基于单片机的超声波水塔液位测量系统protues仿真 本设计基于单片机的超声波水塔液位测量和智能控制系统主要由硬件与软件两部分组成,硬件是基于AT89C51芯片为核心的超声波水塔液位测量,采用AT89C51单片机进行控制及数据处理,给出了超声波发射…...

DigVPS 测评 - 蔭雲(YINNET)上新法國ISP VPS 产品,新品七折出售中。

规格: 摘要: 硬件: 速率: IPv4 质量: ICMP 延迟: TCP 延迟: BGP: 如对该产品感兴趣,想要持续关注其实时与历史数据表现,欢迎访问我们的站点进行长期跟踪。也可…...

探索 BMS 仿真:电池平衡控制策略与 Simulink 的奇妙结合

BMS仿真电池平衡控制策略仿真similink 动力电池管理系统仿真 BMS Battery Simulink 控制策略模型, 动力电池物理模型,需求说明文档。 BMS算法模型包含状态切换模型、SOC估计模型(提供算法说明文档)、电池平衡模型、功率限制模型等,动力电池…...

update-desktop-database命令用法与技巧总结

update-desktop-database 是一个用于构建桌面文件 MIME 类型缓存数据库的命令行工具。它主要扫描指定目录下的 .desktop 文件,提取它们所能处理的 MIME 类型,并创建一个缓存文件(mimeinfo.cache)。这个缓存极大地提升了系统或应用…...

“下一代地热”能的进展和挑战

地热能是一种清洁、持续的能源,在许多地区均可获取,但其发展一直较为缓慢。近2000年前,罗马人就已广泛利用地热能——即来自地球内部的热量——包括在现今英国巴斯地区的温泉综合体中。电力首次从地热源产生是在20世纪初的意大利。在美国&…...

谷歌地图引入Gemini,Ask Maps开启导航新体验

谷歌地图引入Gemini,Ask Maps功能亮相谷歌地图作为谷歌公司的核心产品,紧跟潮流引入了Gemini技术。此次更新带来了全新的导航体验,推出了名为“Ask Maps”的AI功能。这是一个由Gemini驱动的对话系统,能规划行程,还可针…...

阿里龙虾组合来了:HiClaw + CoPaw,内存占用大幅降低

当我们在谈论 “轻量级 Worker” 时,我们在谈论什么? 如果你用过 HiClaw,可能已经熟悉了 Manager Worker 的多 Agent 协作模式。一个 Manager 作为"AI 管家",管理着多个专业化的 Worker —— 前端开发、后端开发、数据…...

实战案例五:Claude Code + Word 技能自动化报告生成

在企业日常工作中,报告撰写是一项频繁且耗时的任务。周报、月报、项目报告、合同文档……这些文档往往有固定的模板,只是数据不同。本案例将展示如何利用 Claude Code 的 Word 技能,实现报告的自动化生成,大幅提升工作效率。 场景描述 你是某公司的项目经理,每周需要向管…...

怎么在linux上启动redis集群

报错: Slot “574” not covered by the cluster. “skip_full_coverage_checkTrue” 证明: redis虽然启动,但是没有节点间没有建立集群 【Redis 集群没有覆盖全部 16384 个哈希槽,缺少了对槽位 574 的覆盖。在集群模式下&#xf…...