RocketMQ单机环境搭建测试+springboot整合

2023-05-16

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}/bin

MAVEN_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:9876
  producer:
    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 {
    @Resource
    private 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> {
    @Override
    public 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 {

    @Autowired
    private 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博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RocketMQ单机环境搭建测试+springboot整合 的相关文章

  • 余弦衰减学习率与linear warmup结合版代码

    以下代码摘自tensorflow官方tpu仓库 span class token keyword def span span class token function cosine learning rate with linear war
  • DiffusionDet源码阅读(1)

    本文仅仅适用于已经通读过全文的小伙伴 本文代码节选自 mmdet 中的 DiffusionDet 代码 xff0c 目前该代码还处于 Development 阶段 xff0c 所以我博客里写的代码和之后的稳定版本可能稍有不同 xff0c 不
  • 分割统一框架:KNet文章

    全文谷歌翻译 43 自己理解 原地址 xff1a https arxiv org pdf 2106 14855 pdf 0 摘要 语义 实例和全景分割已经使用不同的和专门的框架来解决 xff0c 尽管它们存在潜在的联系 本文为这些本质上相似
  • python问题记录 - paramiko模块报错

    文章目录 报错关键字1 代码2 输出3 报错信息4 解决方案 报错关键字 paramikoException ignored in lt function BufferedFile del at 0x109259820 gt Attribu
  • JSP的四种范围

    JSP的四种范围 xff0c 分别为page request session application 这四者都可以用setAttribute 34 getAttribute 34 其中用page时 xff0c 为pageContext se
  • week4-C - TT 的神秘礼物

    题目 TT 是一位重度爱猫人士 xff0c 每日沉溺于 B 站上的猫咪频道 有一天 xff0c TT 的好友 ZJM 决定交给 TT 一个难题 xff0c 如果 TT 能够解决这个难题 xff0c ZJM 就会买一只可爱猫咪送给 TT 任务
  • 【linux】CentOS 7.4下使用yum安装MySQL5.7.20 最简单的

    默认配置文件路径 配置文件 xff1a etc my cnf 日志文件 xff1a var log var log mysqld log 服务启动脚本 xff1a usr lib systemd system mysqld service
  • mongodb生成自签名证书以及配置SSL以及mongo集群搭建(亲测有效)版本-5.0.6

    64 TOC mongodb生成自签名证书以及配置SSL 亲测有效 版本 5 0 6 一直以来都是向大神学习 xff0c 今天也做回大神分享 xff0c 哈哈 xff01 xff01 几个小时的努力不算白费 一 自签名证书生成 1 生成根证
  • mongodb创建用户名和密码(版本5.0.6)

    mongodb创建用户名和密码 xff08 版本5 0 6 xff09 官方文当地址 xff1a 1 mongodb 添加用户 2 mongodo将命令行参数转化为yaml参数的方法 将命令行选项转换为YAML 超级有用哦 3 mongod
  • Lua字符串切分

    lua 字符串切分示例 local requrl 61 34 10 20 144 127 8891 cas login 34 local cutstr 61 string sub requrl 2 print cutstr local cu
  • nginx lua开发配置文件详解

    加载lua文件和库文件 lua package path 34 waf nginx cnwaf lua waf nginx init lua waf nginx cnwaf plugins lua waf nginx cnwaf deps
  • win7系统安装使用高版本的nodejs-v16.19.1

    文章目录 参考 参考 win7这样操作 xff0c 可成功安装高版本node js xff01 注意 xff1a 首先安装13 14版本nodejs 删掉安装目录下的内容下载16 19 1版本的nodejs版本 xff08 下载zip的包
  • j记录一次gorm 使用协程 插入数据一直报错问题 -Duplicate entry ‘95‘ for key ‘PRIMARY‘ [14.649ms] [rows

    文章目录 问题描述问题解决 问题描述 报错代码如下 span class token keyword func span span class token function GetSystemInfoSave span span class
  • stable diffusion的使用

    文章目录 1 文生图1 1 mountains and trees and gree1 2 three dogs1 3 cats1 4 three lovely cats1 5 beautiful girl1 6 机器猫1 7 卡通图像生成
  • DIY:用开源软件搭建自己的物联网

    原文链接 xff1a DIY Open Source Software for your very own IoT 作者 xff1a Vishal Shah 翻译 xff1a 赵屹华 审校 xff1a 刘翔宇 图片来源 xff1a open
  • ubuntu开启rdp服务

    概要 ssh登录用于终端 xff0c 如果需要GUI的远程登陆ubuntu 我了解到大概3中方案 vncxrdp第三方软件 向日葵 TeamViewer之类的 因为vnc我一直配置不好 xff0c 所以试了一下xrdp xff0c 这样wi
  • csp模拟2-T1 HRZ的序列

    题目 时间限制 1s 空间限制 64MB 题目描述 相较于咕咕东 xff0c 瑞神是个起早贪黑的好孩子 xff0c 今天早上瑞神起得很早 xff0c 刷B站时看到了一个序列aaa xff0c 他对这个序列产生了浓厚的兴趣 他好奇是否存在一个
  • Ubuntu 中文件和目录的操作命令

    在 Ubuntu 中 xff0c 文件和目录的操作命令是非常重要的 这些命令帮助您在文件系统中创建 复制 移动 删除和查看文件和目录 以下是一些常用的文件和目录操作命令 xff1a cd cd 命令用于切换当前工作目录 例如 xff0c 要
  • Docker无法在WSL2的Ubuntu启动的问题

    今天在更新了WSL2上的Ubuntu22 04版本 xff0c 在安装Docker后无法启动 xff0c 查看Docker的日志显示如下的错误 INFO 2022 04 22T16 14 55 718999500 43 08 00 stop
  • C语言中的移位操作

    C语言中的移位操作 xff0c 内容不多 不过有些地方你不注意 xff0c 就疏忽了 先做两个小题先 1 unsigned char x 61 3 x lt lt 1是多少 xff1f x gt gt 1是多少 xff1f 2 char x

随机推荐

  • Android获取设备唯一标识的方法

    String uniqueId String mac 61 getMacAddressByInetAddress if mac 61 null amp amp mac equals 34 34 amp amp mac equals 34 0
  • Linux 搭建私有CA证书服务器之超详细版本

    一 CA简介 CA是什么 xff1f CA是Certificate Authority的简写 xff0c 从字面意思翻译过来是凭证管理中心 xff0c 认证授权 它有点类似我们生活中的身份证颁发机构 xff0c 这里的CA就相当于生活中颁发
  • 基于Nginx搭建RTMP-HLS视频直播服务器(推流+拉流)

    1 环境准备 Linux centos7 6 nginx 1 18 0 源码包 span class token function wget span http nginx org download nginx 1 8 1 tar gz n
  • k8s-部署本地仓库harbor

    1 基础配置 xff1a 主机名IP系统版本k8s master192 168 32 128centos 7 6k8s node1192 168 32 129centos 7 6k8s node2192 168 32 130centos 7
  • k8s部署nginx容器

    1 创建挂载nginx namespace yaml配置文件 xff08 k8s master xff1a 192 168 32 128 xff09 apiVersion v1 kind Namespace metadata name ng
  • k8s部署tomcat并且映射本地目录

    1 编写Dockerfile span class token punctuation span root 64 VM 12 7 centos opt span class token punctuation span span class
  • 自动化运维记录之GitLab CI/CD 自动化部署入门教程

    1 前端项目自动化部署需要的环境依赖 Node 安装项目依赖 打包都需要 Nginx web 项目部署必须 正向代理 方向代理 负载均衡等等 GitLab 也会用到 Nginx span class token punctuation sp
  • k8s-kubeadm证书过期续订解决方法

    1 实验目的 通过kubeadm安装的kubernetes集群各个组件所使用证书的期限为1年 xff0c 本实验练习的是到期之后如何续期 2 实验环境 ubernetes环境及版本 整个实验三台机器192 168 32 128作为maste
  • 宝塔部署Django项目-避坑必看

    1 在linux windoes机器上已经安装宝塔 浏览器登录宝塔管理页面 1 1打包模块 span class token number 1 span 将本地计算机的项目下的模块打包 python m pip freeze span cl
  • week11作业—A - 必做题11-1—

    题目 蒜头君从现在开始工作 xff0c 年薪 NNN 万 他希望在蒜厂附近买一套 606060 平米的房子 xff0c 现在价格是 200200200 万 假设房子价格以每年百分之 KKK 增长 xff0c 并且蒜头君未来年薪不变 xff0
  • Linux 系统 nginx 源码编译安装

    nginx版本 xff1a nginx 1 18 0 操作实施环境 Ubuntu 16 04 6 LTS SUSE Linux Enterprise Server 12 SP4 x86 64 注 xff1a 因为是源码安装 xff0c 操作
  • ubuntu18.04和20.04(ubuntu focal)安装MySQL8并使用navicat连接(详细)

    文章的第一节转载自原文连接 本文实现了服务器ubuntu18 04和虚拟机ubuntu20 04两个版本的MySQL8 的安装 xff0c 和navicat的连接 其中ubuntu18 04对应第二节 xff0c ubuntu20 04是u
  • 对接淘宝公共平台API

    1 说明 由于项目临时提出需求 xff0c 需要对接淘宝公共平台查询用户的一些信息 xff0c 所以需要和淘宝平台做对接 xff0c 我查看了一下淘宝公共平台开发文档 xff0c 虽然写的挺丰富挺整洁 xff0c 但我还是一头雾水 xff0
  • 使用IDEA插件从数据库表生成实体类

    目录 1 介绍 2 添加插件 3 创建数据库连接 4 添加数据库连接信息和驱动 5 表生成实体类 1 介绍 EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件 xff0c 主要通过自定义模板 基于ve
  • SpringBoot多环境动态环境切换(nacos)

    目录 1 环境变量切换 1 1 建立各环境配置文件 1 2 设置环境变量 2 nacos配置中心动态切换 2 1 配置文件 2 2 nacos配置 2 3 启动服务 3 同一nacos环境下服务不同环境控制 3 1 cloud方式 3 1
  • 批量插入或更新数据(MyBatis-plus框架)

    目录 1 场景说明 2 DUPLICATE 和REPLACE比较 3 批量插入或者更新 两种方式 方式一 xff1a mybatis plus的saveOrUpdateBatch方法 问题 xff1a 如果操作类集成了基础类 xff0c 比
  • SpringBoot+Nacos+OpenFeign环境搭建

    目录 1 boot方式nacos与openFeign集成 1 引入依赖 2 添加配置 3 测试接口调用 4 常见问题 xff1a 1 版本依赖 2 nacos客户端 2 cloud方式nacos与openFeign集成 1 引入依赖 2 添
  • RestTemplate连接池使用

    说明 在调用淘宝的公共平台接口时候 xff0c 响应较慢 xff0c 我们需要60ms能够获取到响应 xff0c 但是却经常是200ms甚至更长时间 xff0c 别人的接口只能够优化网络响应时间来提升接口响应 由于接口并发量发 xff0c
  • 华为云CCI方式部署服务

    1 创建工作负载 说明 xff1a 创建负载使用的是swr自己上传的镜像 工作负载的创建过程相对简单 xff0c 和CCE类似 xff0c 创建好工作负载后会自动生成服务 2 配置路由 说明 xff1a 添加路由需要指定好容器端口和服务端口
  • RocketMQ单机环境搭建测试+springboot整合

    1 资源下载 官网 xff1a 下载 RocketMQ 这里选择使用编译后可以直接用的 下载后解压 xff1a 略 2 更改配置 主要是更改 conf broker conf 的配置 xff0c 记得添加上下面这几行 xff0c 否则消息发