1.资源下载

官网:下载 | RocketMQ

这里选择使用编译后可以直接用的

下载后解压:略

2.更改配置

主要是更改 conf/broker.conf 的配置,记得添加上下面这几行,否则消息发送失败

autoCreateTopicEnable=true # 支持自动创建topic
namesrvAddr=127.0.0.1:9876 # namespace地址
brokerIP1=192.168.0.179 # 这里是broker地址

不添加这几行可能出现以下问题

原文参考:RocketMQ连接报错RemotingConnectException: connect to <172.17.0.1:10:109011>解决_org.apache.rocketmq.remoting.exception.remotingcon_zhangzengxiu的博客-CSDN博客

3.配置环境变量

需要配置 java,maven,rocketmq的环境变量,可以参照这里配置

# java环境变量配置
export JAVA_HOME=/usr/lib/java-1.8/jdk1.8.0_321
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH# rocketMq环境变量配置
export ROCKETMQ_HOME=/data/rocketMq/rocketmq-all-5.1.0-bin-release
export PATH=${PATH}:${ROCKETMQ_HOME}/binMAVEN_HOME=/data/maven/apache-maven-3.8.4
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

配置好之后刷新一下才会生效

source /etc/profile

5.启动Namesrv

一定要先启动namesrv,因为消息服务器是注册到命名服务器上的

nohup mqnamesrv &

6.启动Broker

启动消息服务器,同时指定刚刚修改过的conf文件,不然还是会读取原本默认的阿里外网IP,还是会报错。

nohup sh mqbroker -n localhost:9876 -c ../conf/broker.conf &

7.部署可视化控制台

1.下载文件

通过下面链接进入下载

GitHub - apache/rocketmq-dashboard: The state-of-the-art Dashboard of Apache RoccketMQ provides excellent monitoring capability. Various graphs and statistics of events, performance and system information of clients and application is evidently made available to the user.

2.构建与运行

先构建,后运行

mvn clean package -Dmaven.test.skip=true
java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar

运行后访问部署那台机器的ip加上端口号即可进入,端口号可以更改配置文件

8.测试消息生产与消费

1.生产消息

在rocketmq的bin目录下运行

tools.shorg.apache.rocketmq.example.quickstart.Producer

会发送1000条测试数据

2.消费消息

在rocketmq的bin目录下运行

tools.shorg.apache.rocketmq.example.quickstart.Consumer

9.整合springboot

1.引入依赖(注意版本)

<rocketmq-starter.version>2.2.3</rocketmq-starter.version>
<rocketmq-client.version>4.8.0</rocketmq-client.version><!--  rocketmq starter --><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>${rocketmq-starter.version}</version></dependency><!--  rocketmq client  --><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>${rocketmq-client.version}</version></dependency>

2.新增配置

rocketmq:name-server: 139.9.178.38:9876producer:group: springBootGroup                  # 生产者组别send-message-timeout: 30000             # 消息发送的超时时间retry-times-when-send-async-failed: 2   # 异步消息发送失败重试次数max-message-size: 4194304               # 消息的最大长度consumer:group: MyConsumerGroup

3.生产者

package com.hhmt.delivery.mq.rocket;import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Component;import javax.annotation.Resource;/*** @author huachun* @version 1.0* @description: TODO* @email huachun_w@163.com* @date 2023-04-20 15:10*/
@Component
public class MyProducer {@Resourceprivate RocketMQTemplate rocketMQTemplate;//发送普通消息的示例public void sendMessage(String topic, String msg) {this.rocketMQTemplate.convertAndSend(topic, msg);}
}

4.消费者

package com.hhmt.delivery.mq.rocket;import org.apache.rocketmq.spring.annotation.MessageModel;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;/*** @author huachun* @version 1.0* @description: TODO* MessageModel.BROADCASTING 广播模式,MessageModel.CLUSTERING集群模式* @email huachun_w@163.com* @date 2023-04-20 15:12*/
@Component
@RocketMQMessageListener(consumerGroup = "MyConsumerGroup", topic = "TestTopic", messageModel = MessageModel.BROADCASTING)
public class MyConsumer implements RocketMQListener<String> {@Overridepublic void onMessage(String message) {System.out.println("Receivedmessage:" + message);}
}

5.测试

编写一个控制器发送消息并接受

package com.hhmt.delivery.mq.rocket;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author huachun* @version 1.0* @description: TODO* @email huachun_w@163.com* @date 2023-04-19 18:33*/
@RestController
@RequestMapping("/v1/mq")
public class MessageController {@Autowiredprivate MyProducer myProducer;@GetMapping("/send/{str}")public void send(@PathVariable("str") String str) {myProducer.sendMessage("TestTopic",str);}}

测试效果

说明:通过控制器调用消息生产服务向 TestTopic 这个主题发送消息 ,同时消费者监听这个主题并接受到消息

@RocketMQMessageListener(consumerGroup = "MyConsumerGroup", topic = "TestTopic", messageModel = MessageModel.BROADCASTING)

messageModel说明:

MessageModel.BROADCASTING 广播模式,所有的消费者都可以收到同样的消息,并且都可以消费
MessageModel.CLUSTERING 集群模式,同一个消费者消费一组消息,不能重复,即A消息被x消费者消费了,其他消费者就不能消费到这个消息了

原文参考:SpringBoot+RocketMq入门_舌尖上的蛋炒饭的博客-CSDN博客

RocketMQ单机环境搭建测试+springboot整合相关推荐

  1. RocketMQ单机环境搭建

    大家好,我是冰河~~ 今天,带来一篇搭建RocketMQ单机环境的文章,为后面的分布式事务专栏做准备.RocketMQ是阿里巴巴开源的一款高性能分布式消息中间件,有关RocketMQ的详细讲解,后面会 ...

  2. Kafka单机环境搭建及整合SpringBoot完成基本使用

    Kafka单机环境搭建及整合SpringBoot完成基本使用 Kafka单机环境搭建 下载kafka_2.11-1.1.0.tgz版本 下载地址 https://archive.apache.org/ ...

  3. 搭建kafaka_kafka单机环境搭建及其基本使用

    最近在搞kettle整合kafka producer插件,于是自己搭建了一套单机的kafka环境,以便用于测试.现整理如下的笔记,发上来和大家分享.后续还会有kafka的研究笔记,依然会与大家分享! ...

  4. 单机 搭建kafka集群 本地_Kafka单机环境搭建简记

    最近在搞kettle整合kafka producer插件,于是自己搭建了一套单机的kafka环境,以便用于测试.现整理如下的笔记,发上来和大家分享.后续还会有kafka的研究笔记,依然会与大家分享! ...

  5. SRS流媒体服务器——单机环境搭建和源码目录介绍

    SRS流媒体服务器--单机环境搭建和源码目录介绍 1. 目录 环境搭建 源码目录介绍 1. 环境搭建 srs官⽹:https://github.com/ossrs/srs 码云的源速度快:https: ...

  6. CAS5.3服务器搭建及SpringBoot整合CAS实现单点登录

    CAS5.3服务器搭建及SpringBoot整合CAS实现单点登录 1.1 什么是单点登录 1.2 什么是CAS 1.3 CAS服务端部署 1.template下载 1.4 客户端搭建 1.1 什么是 ...

  7. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  8. HBase单机环境搭建

    HBase单机环境搭建 转自:https://songlee24.github.io/2015/07/20/hbase-standalone-mode/ 在搭建HBase单机环境之前,首先你要保证你已 ...

  9. Linux系统 ELK(8.3.1)单机环境搭建

    Linux系统下 ELK单机环境搭建,当前ELK版本8.3.1 安装前置,ELK环境需要使用非root用户运行 1.下载ELK包 2.解压安装 3.配置 1.配置启动Elasticsearch 2.配 ...

最新文章

  1. Docker最全教程——从理论到实战(六)
  2. 如何安装python虚拟环境_如何安装python3.9以及python虚拟环境?
  3. 三层交换机实现VLAN互通实例
  4. numpy.exp详解
  5. 无法使用tomcat6.exe启动服务
  6. mysql数据库且字 语句是什么,MySQL(数据库)基本操作
  7. 指针的基本操作(10.1 Basic Pointer Operations)
  8. 11个技巧让你编写出更好的Python代码,值得收藏!!
  9. python把csv文件转换txt_Python实现txt文件转csv格式
  10. 练打字-测试看图说话(AD安装)
  11. Java Swing Action 动作
  12. matlab绘制爱心
  13. 实训-利用HTML+CSS做响应式项目网页
  14. 光伏发电仿真系列-光伏并网发电系统研究
  15. webp图片介绍及用法总结
  16. 自动生成python接口文档_Django自动生成Swagger接口文档
  17. 从myspace数据库看分布式系统数据结构变迁
  18. 南农计算机考研真题,2021南京农业大学考研历年真题
  19. git代码使用空格缩进
  20. 北大青鸟广州天河中心ACCP4.0软件工程师各阶段课程

热门文章

  1. STM32f103的数电采集电路的ADC多通道采集程序
  2. 2021年全球汽车安全带行业现状及未来发展趋势分析,汽车安全带增长基本同步汽车行业增长「图」
  3. 深入分析Redis Server went away产生的原因
  4. DC/AC:单相方波全桥逆变电路设计原理及实验仿真
  5. 【DGL教程】第4章 图数据集
  6. CentOS7硬盘扩容
  7. 理解计算机桌面的含义,桌面的新含义是什么意思
  8. 石油工业计算机应用是核心期刊吗,石油工业计算机应用杂志
  9. 杰理发射器用于做对讲机【篇】
  10. python3.9安装Django