文章目录
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 防火墙设置
如果服务端和客户端访问不通,客户端没有任何错误提示信息