rocketmq搭建启动集成springboot落地并监控

news/2025/1/11 11:18:39/

目录

一、rocketmq服务器搭建启动:

二、springboot 集成rocketmq落地:

 三、可视化页面集成:


rocketmq是最近很流行的消息中间件,有很多的优点,比如多个topic也不会引起性能问题;今天我们开始搭建启动集成springboot落地:

一、rocketmq服务器搭建启动:

官网上进行下载 :https://github.com/apache/rocketmq/releases 我们选择4.9.1版本,或者点击
Index of /dist/rocketmq/4.9.1

1、解压到一个无中文无空格的目录下,解压后目录如下:

注意:解压到一个无中文无空格的目录下,否则会有各种意想不到的错误。 

2、调整堆内存大小:把Xms、Xmx、-Xmn都设置成512m

打开runserver.cmd:

 这里%CLASSPATH%要加个双引号,不然启动时会找不到jdk

打开runbroker.cmd:


此处添加 ‐Drocketmq.broker.diskSpaceWarningLevelRatio=0.99的意思是:把Broker磁盘空间利用率设置为99%,默认是85%。

 3、启动NameServer :进入bin目录,执行 start mqnamesrv.cmd

以上说明启动成功 

4、启动broker:进入bin目录,执行 mqbroker.cmd -n localhost:9876  autoCreateTopicEnable=true,此处的autoCreateTopicEnable=true 也可以添加到配置文件broker.conf中,意思是自动生成topic,测试环境可以开启!线上环境尽量关闭!

启动成功显示:

5、测试生产信息:进入cmd命令窗口,执行

set NAMESRV_ADDR=127.0.0.1:9876
tools.cmd org.apache.rocketmq.example.quickstart.Producer

此处会产生1000条消息 

6、测试消费信息 :进入cmd命令窗口,执行

set NAMESRV_ADDR=127.0.0.1:9876
tools.cmd org.apache.rocketmq.example.quickstart.Consumer

此处会消费1000条信息 

7、消息轨迹配置:
打开消息轨迹功能,需要在broker.conf中打开一个关键配置:

traceTopicEnable=true

8、关闭命令:


# 1.关闭NameServer
sh bin/mqshutdown namesrv
# 2.关闭Broker
sh bin/mqshutdown broker

二、springboot 集成rocketmq落地:

1、相关jar包引入

 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.1</version><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></exclusion><exclusion><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></exclusion><exclusion><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></exclusion></exclusions></dependency>

对应的mq版本如下:

 2、核心配置文件:最基础的配置

rocketmq.name-server=127.0.0.1:9876
rocketmq.producer.group=springBootGroup
server.port=8081

3、生产者生产消息

import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.apache.rocketmq.spring.support.RocketMQHeaders;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Component;import javax.annotation.Resource;/*** @author :nandao**/
@Component
public class SpringProducer {@Resourceprivate RocketMQTemplate rocketMQTemplate;public void sendMessage(String topic,String msg){this.rocketMQTemplate.convertAndSend(topic,msg);}}

调用入口:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;/*** @author :nandao* @description:**/
@RestController
@RequestMapping("/MQTest")
public class MQTestController {private final String topic = "TestTopic";@Resourceprivate SpringProducer producer;@RequestMapping("/sendMessage")public String sendMessage(String message){producer.sendMessage(topic,message);return "消息发送完成";}}

  4、消费者监听

import org.apache.rocketmq.spring.annotation.ConsumeMode;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
/*** @RocketMQMessageListener 注解可以详细了解* @author :nandao**/
@Component
@RocketMQMessageListener(consumerGroup = "MyConsumerGroup", topic = "TestTopic",consumeMode= ConsumeMode.CONCURRENTLY)
public class SpringConsumer implements RocketMQListener<String> {@Overridepublic void onMessage(String message) {System.out.println("consumer message : "+ message);}
}

5、启动boot服务:生产消息

生产调用:

消费显示:

 三、可视化页面集成:

RocketMQ源代码中并没有提供控制台,但是有一个Rocket的社区扩展项目中提供
了一个控制台,地址: https://github.com/apache/rocketmq-dashboard
下载下来后,解压并进入对应的目录

1、使用maven进行编译

mvn clean package -Dmaven.test.skip=true

2、执行jar:

编译完成后,获取target下的jar包,就可以直接执行。但是这个时候要注意,在这
个项目的application.yml中需要指定nameserver的地址。默认这个属性是指向本
地。如果配置为空,会读取环境变量NAMESRV_ADDR。
那我们可以在jar包的当前目录下增加一个application.yml文件,覆盖jar包中默认的
一个属性:

java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar

3、启动完成后,可以访问 http://127.0.0.1:8080/ 看到管理页面

 上面有多个菜单,可以点击一一查看,均为监控指标!

到此,rocketmq整个使用流程分享完毕,下篇我们更深入分析其原理和高级功能,敬请期待!


http://www.ppmy.cn/news/7261.html

相关文章

专利申请与专利转让有什么区别?

专利申请与专利转让有什么区别&#xff1f; 一、专利转让和专利申请的流程不同 专利转让的流程&#xff1a; (1)找到合适的转让途径; (2)专利转让人和专利受让人进行签署专利权转让合同; (3)填写专利转让相关文件&#xff0c;需要严格按照国家规定形式进行填写&#…

Python实现猎人猎物优化算法(HPO)优化支持向量机回归模型(SVR算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的优…

2023年无线运动耳机排行榜最新公布、公认最好的运动耳机推荐

随着人们日益对健康的重视&#xff0c;”全民健身“正在全国&#xff0c;乃至全世界蔓延开来&#xff0c;其中跑步锻炼凭借着门槛低&#xff0c;益处多成为了大部分人的健身的首选。而随着跑步大军的壮大&#xff0c;国内蓝牙耳机市场也是一片火热。其中蓝牙无线运动耳机凭借着…

vue中v-if和v-for的区别是什么

v-if和v-for的区别&#xff1a;1、作用不同&#xff0c;v-if指令用于条件性地渲染一块内容&#xff0c;这块内容只会在指令的表达式返回 true值的时候被渲染&#xff1b;而v-for指令基于一个数组来渲染一个列表。2、优先级不同&#xff0c;v-for优先级比v-if高&#xff0c;在进…

Tomcat架构分析—— Engine

文章目录一、Tomcat的核心模块&#xff08;核心组件&#xff09;二、Engine 组件1.核心类与依赖图2.核心类源码分析构造函数&#xff1a;初始化方法 init&#xff1a;启动方法 start&#xff1a;3.Engine的启动过程总结一、Tomcat的核心模块&#xff08;核心组件&#xff09; …

计算机系统基础实验 - 同符号浮点数加法运算/无符号定点数乘法运算的机器级表示

实验3 同符号浮点数加法运算/无符号定点数乘法运算的机器级表示 实验序号&#xff1a;3 实验名称&#xff1a;同符号浮点数加法运算/无符号定点数乘法运算的机器级表示 适用专业&#xff1a;软件工程 学 时 数&#xff1a;2学时 一、实验目的 1.掌握定点数乘法溢出的判定方法…

JavaScript篇.day05-数组, 基本/引用数据类型函数调用区别

目录 1.Array数组 (1)简介 (2)数组的基本操作 (3)数组的遍历 a. 普通数组的遍历 b.对象数组的遍历 (4)数组对象常用方法 2.基本/引用数据类型函数调用区别 1.Array数组 (1)简介 数组时存放一组数据,长度可变的有序集合索引: 从0开始, 空数组索引无效稀疏数组, 其中含…

青龙面板搭建+QQ机器人

搭建青龙面板首先有个服务器 我这里看到华为云有活动就入手了一个 1.系统选择 centos7.9 华为云购买地址&#xff1a;https://activity.huaweicloud.com/1212_promotion/index.html 2. 服务器上安装宝塔 yum install -y wget && wget -O install.sh http://downl…