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

news2025/1/12 3:41:42

目录

一、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、关闭命令:


# 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 {

    @Resource
    private 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";
    @Resource
    private 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> {
    @Override
    public 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.coloradmin.cn/o/118099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这5个素材库,新手也能让你做出精美的 PPT。

高质量免费PPT模板&#xff0c;各种PPT素材都有&#xff0c;文案模板直接套用&#xff0c;还有教程学习&#xff0c;对新手特别友好。1、菜鸟图库 https://www.sucai999.com/pptx.html?vNTYwNDUx网站有各种主题的PPT模板&#xff0c;工作总结、教育课件、述职汇报、节日庆典、…

美颜sdk中的人脸美型实现流程详解

在之前的文章中&#xff0c;小编讲了许多美颜sdk的功能实现流程&#xff0c;有一些是热门功能&#xff0c;例如美白、磨皮等&#xff0c;但是有一个功能小编遗漏没有讲到&#xff0c;虽然不常提起&#xff0c;但是它的热度并不低&#xff0c;这个功能就是——“人脸美型”。本篇…

一文解析Linux中断子系统softirq和tasklet

说明&#xff1a; Kernel版本&#xff1a;4.14ARM64处理器&#xff0c;Contex-A53&#xff0c;双核使用工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 中断子系统中有一个重要的设计机制&#xff0c;那就是Top-half和Bottom-half&#xff0c;将紧急的工作放…

电子招标采购系统—企业战略布局下的采购寻源

​ 智慧寻源 多策略、多场景寻源&#xff0c;多种看板让寻源过程全程可监控&#xff0c;根据不同采购场景&#xff0c;采取不同寻源策略&#xff0c; 实现采购寻源线上化管控&#xff1b;同时支持公域和私域寻源。 询价比价 全程线上询比价&#xff0c;信息公开透明&#xff0c…

嵌入式Linux内核开发必须了解的三十道题

Linux的同步机制从2.0到2.6以来不断发展完善。从最初的原子操作&#xff0c;到后来的信号量&#xff0c;从大内核锁到今天的自旋锁。这些同步机制的发展伴随Linux从单处理器到对称多处理器的过渡。 伴随着从非抢占内核到抢占内核的过度。Linux的锁机制越来越有效&#xff0c;也…

C# 基于文本的应用 正则表达式

一 基于文本的应用 1 控制台应用程序 2 Main()函数的参数-命令行参数 ① Main()函数可以带string[]参数&#xff1b; ② Main()函数可以有返回值(int),也可以为void; 二 使用Environment类 CommandLine CommandLineArgs MachineName OSVersion UserDomainName UserName …

Python使用re库处理正则详解

今天继续给大家介绍Python相关知识&#xff0c;本文主要内容是Python使用re库处理正则详解。 一、Python re库简介 re库是Python的标准库&#xff08;所谓标准库&#xff0c;就是在安装Python后就自动安装了的库&#xff09;之一&#xff0c;主要用于对指定字符串进行正则匹配…

功率放大器的输入阻抗和输出阻抗的关系

输入阻抗&#xff08;inputimpedance&#xff09;主要是电路输入端的等效阻抗。如果我们在输入端加一个电压源U并在输入端测量电流I&#xff0c;则输入阻抗Rin为U/I。输入端可以被认为是一个电阻的两端&#xff0c;这个电阻的阻值就是输入阻抗。 对于相同的输入电压&#xff0c…

【C++】使用vector和模拟其实现

文章目录1、vector的使用1.1 vector的构造、拷贝构造与迭代器1.2 vector的空间查询和随机访问1.2 vector的增删查改2、vector的模拟实现2.1 vector的迭代器2.2 vector的结构构建2.4 vector的构造和拷贝构造2.4 vector的增删1、vector的使用 C中的vector和C数据结构中的动态顺序…

CANopen1.0-基础知识

caopen基础知识 1、canopen基础知识-can标准帧格式2、CANopen 预定义主/从连接集的广播对象3、CANopen 主/从连接集的对等对象4、通讯接口4.1、NMT 网络管理1、canopen基础知识-can标准帧格式 报文传输采用 CAN 标准帧格式,即为 11bit 的 ID 域:CAN-ID(11bit)=function co…

STM32MP157驱动开发——Linux RS232/485/GPS 驱动

STM32MP157驱动开发——Linux RS232/485/GPS 驱动一、简介二、STM32MP1 UART 驱动分析1.UART 的 platform 驱动框架2.uart_driver相关流程三、驱动开发1.RS232驱动编写1&#xff09;添加 usart3 和 uart5 的引脚信息2&#xff09;移植minicom四、驱动测试1.RS232收发测试2.RS48…

GitHub下载量5W+,最新23版Java岗面试攻略,涵盖28个技术栈

年底失业&#xff0c;机会也不多&#xff0c;短时间内想找到合适工作是几乎不可能的。身体好点在家&#xff0c;主要建议大家就做两件事&#xff1a; 第一&#xff1a;整理工作经验&#xff0c;制定新年求职计划。等一些不错的公司放出新的hc&#xff0c;市场情况一回暖&#…

web应用的认证与鉴权

文章目录什么是认证和授权&#xff1f;什么是session&#xff1f;什么是cookie&#xff1f;什么是stick session&#xff1f;如何解决session同步的问题&#xff1f;什么是认证和授权&#xff1f; 认证解决的就是你是谁的问题&#xff0c;当登录一个web电商平台&#xff0c;当…

配置压力测试环境

压力测试环境跟测试环境基本一样&#xff0c;不过部署到新的服务器 首先选一台服务器部署eureka&#xff0c;在把项目发布到eureka上 选择另外一台服务器部署nginx&#xff0c;实现前后端分离 &#xff08;eureka路径如下&#xff1a;/opt/cbd/cloud/cbd-cloud-eureka/&#x…

TensorRt(4)yolov3加载测试

本文介绍使用darknet项目原始的预训练模型yolov3.weights&#xff0c;经过tensorrt脚本转换为onnx模型&#xff0c;进一步编译优化编译位engine&#xff0c;最后使用TensorRt运行时进行推理。推理时的结果后处理使用c实现&#xff0c;也给出了问题的说明。 文章目录1、darkent模…

C语言奇奇怪怪表达式‘abcd‘,及操作符详解

前言 回顾操作符和一些表达式方面的知识。 表达式及操作符前言算术操作符 &#xff1a; - * /位操作符>>、<<>>算数右移逻辑右移<<小结&、|、~&&#xff1a;有0则为0&#xff0c;两个1才为1|&#xff1a; 有1则为1&#xff0c;两个0才为0~&am…

透彻感知 数字孪生智慧隧道Web3D可视化监控系统

今天为大家分享一个采用 数维图 的 Sovit3D 构建轻量化 3D 可视化场景的案例——智慧隧道三维可视化系统。多维度呈现隧道内外场景&#xff0c;实现隧道内态势的实时监测&#xff0c;运维设备、控制系统和信息系统的互联互通。加强隧道内设备的全状态感知力与控制力&#xff0c…

AI技术赋能数智化转型,激发企业变革创新

人工智能的概念第一次被提出&#xff0c;是在20世纪50年代&#xff0c;距今已七十余年的时间。随着深度神经网络技术的逐渐成熟和计算能力的大幅提升&#xff0c;AI技术实现了飞跃式地发展&#xff0c;已经在工业、制造、能源、金融等各行各业得到了广泛有效地应用实践&#xf…

2022全年度饮料十大热门品牌销量榜单

随着国民经济的发展及居民收入水平不断提升&#xff0c;我国饮料行业规模处于不断增长的状态&#xff0c;饮料种类也日益繁多。同时&#xff0c;瓶装水、碳酸饮料、果汁饮料、茶饮料、功能饮料、含乳饮料等品类竞争激烈。但未来&#xff0c;我国饮料市场还有很大发展空间。 根据…

VS code配置C语言环境

下载编译器MinGW并解压&#xff08;任意路径&#xff09; 官网页面&#xff1a;MinGW-w64 下载页面&#xff1a;MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net MinGW添加至环境变量 D:\VS code\mingw64\bin 注&#xff1a;不能有中文&#xff1b…