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

Windows11安装rockerMq5.0+以及springboot集成rockerMq

安装jdk17,rockermq5.0+需要jdk11+,我这里使用jdk17

配置系统环境变量

ROCKETMQ_HOME

D:\work\mmq\rocketmq-all-5.2.0-bin-release

编写启动脚本

D:
cd D:\work\mmq\rocketmq-all-5.2.0-bin-release\bin
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 -c ..\conf\broker.conf

启动 会弹出2个黑窗口 说明启动成功

Windows版RockerMq5.0+服务端的包-包含dashboard的图形化包

启动 dashboard 图形化界面

 访问地址: http://localhost:8080/#/

创建一个springboot的项目 集成rockermq

引入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.0</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.xulk</groupId><artifactId>spring-boot</artifactId><version>0.0.1-SNAPSHOT</version><name>springAI</name><description>Demo project for Spring Boot</description><packaging>jar</packaging><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.2</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--        <dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>3.0.0</version></dependency>--><!-- RocketMQ --><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.3.2</version> <!-- 使用与您RocketMQ服务端匹配的版本 --></dependency><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client-java</artifactId><version>5.0.7</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories></project>

创建配置文件

logging:config: classpath:logback.xml
server:port: 8081# RocketMQ Config
rocketmq:name-server: 127.0.0.1:9876producer:group: my-consumer_group  # 生产者组名

消息生产者  普通消息和延迟消息


import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.text.SimpleDateFormat;
import java.util.Date;/*** 消息生产者*/@Service
public class MqProducer {@Autowiredprivate RocketMQTemplate rocketMQTemplate;/*** 发送消息* @param topic 消息主题* @param message 消息内容*/public void sendMessage(String topic, String message) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String currentTime = sdf.format(new Date());rocketMQTemplate.convertAndSend(topic, currentTime + message);}//定时/延时消息发送public  void sendDeliveryTimestampMessage(  ) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String currentTime = sdf.format(new Date());System.out.println( "发送时间:  " + currentTime );currentTime = currentTime + "  ==== AAAAAAAAAAAAAAAAAAAAAAAAAA";Message message = new Message("my-topic", "", "", currentTime.getBytes());//time这里是消费者的接收时间,单位是毫秒。Long time = System.currentTimeMillis() + 15 * 60 * 1000;message.setDeliverTimeMs(time);DefaultMQProducer producer = rocketMQTemplate.getProducer();try {producer.send(message);}catch (Exception e){System.out.println( "发送异常----{}" + e.getLocalizedMessage() );}}}

消息消费者

package com.xxl.job.executor.mq;import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;import java.text.SimpleDateFormat;
import java.util.Date;/*** 消息消费者*/@Service
@RocketMQMessageListener(topic = "my-topic", consumerGroup = "my-consumer_group")
public class MqConsumer implements RocketMQListener<String> {/*** 消费对应 topic 主题的消息* @param message 生产者发送过来的消息*/@Overridepublic void onMessage(String message) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String currentTime = sdf.format(new Date());System.out.println( "消费端 ======== 接收时间:  " + currentTime );System.out.println("消费端 消费消息" + " ========== " + message);}}

创建一个 Controller 

import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RocketMqController {@ResourceMqProducer mqProducer;/*** 发送消息*/@GetMapping("send")public void send( ) {
//        mqProducer.sendMessage("my-topic", "666666666666668888888");mqProducer.sendDeliveryTimestampMessage();}}

浏览器请求

http://localhost:8081/send

去mq的可视化页面查询  收到消息

相关文章:

  • iOS SwiftUI的具体运用实例(SwiftUI库的运用)
  • 大语言模型 10 - 从0开始训练GPT 0.25B参数量 补充知识之模型架构 MoE、ReLU、FFN、MixFFN
  • 应用层DDoS防护:从请求特征到行为链分析
  • Day 27 函数专题2 装饰器
  • 高可用消息队列实战:AWS SQS 在分布式系统中的核心解决方案
  • Core Web Vitals 全链路优化:从浏览器引擎到网络协议深度调优
  • Java + 鸿蒙双引擎:ZKmall开源商城如何定义下一代B2C商城技术标准?
  • 【Linux网络】数据链路层
  • 在服务器上安装AlphaFold2遇到的问题(2)
  • #跟着若城学鸿蒙# web篇-获取定位
  • 质量管理工程师面试总结
  • React文件上传组件封装全攻略
  • React Flow 节点属性详解:类型、样式与自定义技巧
  • python打卡day27
  • 组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果
  • Jenkins的流水线执行shell脚本执行jar命令后项目未启动未输出日志问题处理
  • 变量赋值和数据类型
  • 线程池(ThreadPoolExecutor)实现原理和源码细节是Java高并发面试和实战开发的重点
  • 用GPU训练模型的那些事:PyTorch 多卡训练实战
  • moveit2报错!
  • 高途一季度净利润同比增长1108%: “与吴彦祖一起学英语”短时间内就实现了盈利
  • 霍步刚任辽宁沈阳市委书记
  • 女子七年后才知银行卡被盗刷18万元,警方抓获其前男友
  • 上海高院与上海妇联签协议,建立反家暴常态化联动协作机制
  • 钕铁硼永磁材料龙头瞄准人形机器人,正海磁材:已向下游客户完成小批量供货
  • 俄外交部:俄乌伊斯坦布尔谈判改在当地时间15日下午举行