RocketMq Windows 部署测试

1.前言

本文主要记录如何在 Windows 系统中部署 RocketMQ,并用 Java Spring 测试相关功能

  • RocketMQ 版本 4.9.4
  • ACL 权限设置

2.部署流程

2.1 下载

官网下载地址

  • https://rocketmq.apache.org/zh/download

找到需要的版本
请添加图片描述

本文以 4.9.4 版本为例进行测试

2.2 启动

2.2.1 启动步骤

解压 rocketmq-all-4.9.4-bin-release.zip

请添加图片描述

打开 cmd 命令框

进入到对应的盘服

D:
cd D:\soft\rocketmq-all-4.9.4-bin-release\bin

启动 nameserver

start mqnamesrv.cmd

启动 broker

start mqbroker.cmd -n 127.0.0.1:9876 -c D:\soft\rocketmq-all-4.9.4-bin-release\conf\broker.conf

如下:

请添加图片描述

启动成功如下:

请添加图片描述

2.2.2 配置文件说明

文件位置

  • D:\soft\rocketmq-all-4.9.4-bin-release\conf
    • broker.conf 配置文件
    • plain_acl.yml acl 权限配置文件

请添加图片描述

如果要开启 ACL 权限功能,新增 aclEnable = true

请添加图片描述

plain_acl.yml

请添加图片描述

具体使用说明可以参考官网文档。

accessKey 和 secretKey,需要给到客户端来配置。

topicPerms

  • 权限 topic
    • PUB 推送
    • SUB 订阅

groupPerms

  • 权限 group
    • PUB 推送
    • SUB 订阅

admin

  • 这个是用来给管理工具,管理工具可以配置这个 accessKey 和 secretKey

2.3 管理页面

去官网下载对应的管理项目源码,修改对应的配置文件

  • https://github.com/apache/rocketmq-dashboard

请添加图片描述

启动项目,打开页面如下:

请添加图片描述

3.测试

3.1 发送消息

切换语言

请添加图片描述

然后新增 topic test,点击发送消息

请添加图片描述

3.2 java 代码

测试代码如下

@Slf4j
@Service
@RocketMQMessageListener(topic = "test", consumerGroup = "test-group-1")
public class TestListener implements RocketMQListener<String> {
    
    

    @Override
    public void onMessage(String message) {
    
    
        log.info("test receive message: {}", message);
    }

}

测试如下:

请添加图片描述

4.问题以及排查

4.1 版本对应

客户端版本要与 RocketMQ 服务端版本一致

  • 不同的版本,不一定适配

比如 RocketMQ 4.9.4 对应的 springboot 版本如下:

        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <version>2.2.1</version>
        </dependency>

4.2 密码权限要设置对

java spring 客户端 application.properties 配置文件

rocketmq.name-server=127.0.0.1:9876
rocketmq.consumer.access-key=rocketmq2
rocketmq.consumer.secret-key=12345678

如果 access-key 和 secret-key 设置的不对,客户端没有任何错误提示信息,需要仔细检查

4.3 防火墙设置

如果服务端和客户端访问不通,客户端没有任何错误提示信息