RocketMQ、dashboard部署以及安全设置
- 一、启动RocketMQ
-
- [1.1 下载RocketMQ](#1.1 下载RocketMQ)
- [1.2 修改配置文件](#1.2 修改配置文件)
-
- [1.2.1 修改nameServer Jvm内存配置](#1.2.1 修改nameServer Jvm内存配置)
- [1.2.2 修改broker参数](#1.2.2 修改broker参数)
- [1.3 启动](#1.3 启动)
-
- [1.3.1 启动NameServer](#1.3.1 启动NameServer)
- [1.3.2 启动Broker](#1.3.2 启动Broker)
- [1.3.3 测试是否启动成功](#1.3.3 测试是否启动成功)
-
- [1.3.3.1 测试消息发送](#1.3.3.1 测试消息发送)
- [1.3.3.2 测试消息接收](#1.3.3.2 测试消息接收)
- [1.3.3.3 Java程序发送消息](#1.3.3.3 Java程序发送消息)
- [1.3.4 关闭NameServer和broker](#1.3.4 关闭NameServer和broker)
- [1.3.5 汇总启动脚本](#1.3.5 汇总启动脚本)
- [二、启动RocketMQ Dashboard](#二、启动RocketMQ Dashboard)
-
- [2.1 下载Dashboard源码](#2.1 下载Dashboard源码)
- [2.2 Maven打包](#2.2 Maven打包)
- [2.3 上传到Linux服务器](#2.3 上传到Linux服务器)
- [2.4 启动Dashboard](#2.4 启动Dashboard)
- [2.5 访问面板](#2.5 访问面板)
- 三、设置密码
-
- [3.1 RocketMQ配置密码](#3.1 RocketMQ配置密码)
-
- [3.1.1 开启acl控制](#3.1.1 开启acl控制)
- [image-202308142305488723.1.2 配置账号密码](#image-202308142305488723.1.2 配置账号密码)
- [3.2 配置面板中的密码](#3.2 配置面板中的密码)
-
- [3.2.1 在dashboard.jar包同级目录创建config文件夹](#3.2.1 在dashboard.jar包同级目录创建config文件夹)
- [3.2.2 上传application.properties](#3.2.2 上传application.properties)
- [3.2.3 修改application.properties](#3.2.3 修改application.properties)
- [3.2.4 重启dashboard](#3.2.4 重启dashboard)
- [3.3 面板开启账号密码](#3.3 面板开启账号密码)
-
- [3.3.1 开启账号密码访问](#3.3.1 开启账号密码访问)
- [3.3.2 修改账号密码](#3.3.2 修改账号密码)
- [3.3.3 修改默认用户配置文件路径](#3.3.3 修改默认用户配置文件路径)
- [3.3.4 重启dashboard](#3.3.4 重启dashboard)
一、启动RocketMQ
1.1 下载RocketMQ
RocketMQ安装包下载地址:https://rocketmq.apache.org/download
在/opt文件夹下建立rocketmq文件夹,存放rocketmq相关文件
bash
cd /opt
mkdir rocketmq
cd rocketmq/
复制RocketMQ下载路径
以当前最新版:5.1.3为例,下载链接为:https://dist.apache.org/repos/dist/release/rocketmq/5.1.3/rocketmq-all-5.1.3-bin-release.zip
使用wget直接下载到当前路径
bash
wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.3/rocketmq-all-5.1.3-bin-release.zip
如果没有wget,先进行安装
bash
yum -y install wget
下载成功
使用unzip解压
bash
unzip rocketmq-all-5.1.3-bin-release.zip
如果没有unzip,则先安装
bash
yum install -y unzip zip
查看结果
修改文件夹名字(文件夹名字太长,看着不舒服)
bash
mv rocketmq-all-5.1.3-bin-release rocketmq-5.1.3
至此,RocketMQ相关文件准备工作已完成
1.2 修改配置文件
由于RocketMQ默认配置比较高,我们要根据自己的机器配置调整相关参数。(如果机器配置比较高,可以直接调到1.3 启动章节)
1.2.1 修改nameServer Jvm内存配置
bash
/opt/rocketmq/rocketmq-5.1.3/bin
vim runserver.sh
修改-Xms4g -Xmx4g -Xmn2g
,三个参数
- Xms 为jvm启动时分配的内存,比如-Xms512m,表示分配512M
- Xmx 为jvm运行过程中分配的最大内存,比如-Xms512m,表示jvm进程最多只能够占用512M内存
- Xmn 堆内新生代的大小,-Xmn256m代表新生代大小为256M
在这边,根据自己的配置,调整为以下参数:
1.2.2 修改broker参数
bash
vim runbroker.sh
- -Xms -Xmx 上面已经说明了
- -XX:MaxDirectMemorySize 用于设置直接内存的最大大小。
根据机器配置,修改为以下:
1.2.3 修改broker配置
bash
cd /opt/rocketmq/rocketmq-5.1.3/conf/
1.3 启动
1.3.1 启动NameServer
bash
# 启动NameServer
sh bin/mqnamesrv &
# 查看日志
tail -f ~/logs/rocketmqlogs/namesrv.log
日志中显示:The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
代表已经启动
1.3.2 启动Broker
bash
# 在rocketmq-5.1.3目录启动Broker,使用conf/broker.conf配置文件
nohup sh bin/mqbroker -c conf/broker.conf -n localhost:9876 &
# 查看日志
tail -f ~/logs/rocketmqlogs/proxy.log
1.3.3 测试是否启动成功
1.3.3.1 测试消息发送
bash
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
成功示例:
1.3.3.2 测试消息接收
bash
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
成功示例:
1.3.3.3 Java程序发送消息
注意linux服务器要开放对应的端口!
Maven项目引入依赖
xml
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>5.1.1</version>
</dependency>
测试类
java
public class ASimpleTest {
public static void main(String[] args) throws Exception{
// 创建一个生产者(指定一个组名)
DefaultMQProducer producer = new DefaultMQProducer("test-producer-group");
// 连接namersrv
producer.setNamesrvAddr("192.168.1.7:9876");
// 启动
producer.start();
for (int i = 0; i < 10; i++) {
Message testTopic = new Message("testTopic", "我是一个简单的消息".getBytes());
SendResult send = producer.send(testTopic);
System.out.println(send.getSendStatus());
}
producer.shutdown();
}
}
输出:
1.3.4 关闭NameServer和broker
bash
# 关闭broker
sh bin/mqshutdown broker
# 关闭namesrv
sh bin/mqshutdown namesrv
1.3.5 汇总启动脚本
结合前面的脚本,汇总成一个统一的脚本
创建文件
bash
vim restart.sh
脚本内容
bash
# 关闭broker
sh bin/mqshutdown broker
# 关闭namesrv
sh bin/mqshutdown namesrv
# 启动namersrv
sh bin/mqnamesrv &
# 启动broker
nohup sh bin/mqbroker -c conf/broker.conf -n localhost:9876 &
之后,只要执行sh restart.sh
即可快速重启
至此,RocketMQ的启动、测试是否启动以及关闭已经说明完毕
二、启动RocketMQ Dashboard
RocketMQ Dashboard是一个用于管理和监控Apache RocketMQ消息队列的Web界面。
2.1 下载Dashboard源码
下载到本地或者Linux环境(因为我只有本地有Maven,所以下载到Windows环境)
2.2 Maven打包
解压后,进入文件夹
执行Maven命令,打出对应jar包
bash
mvn clean package
2.3 上传到Linux服务器
将target
文件夹底下的rocketmq-dashboard-1.0.0.jar
上传到服务器
2.4 启动Dashboard
启动dashboard,指定Dashboard端口为18001
,NameServer地址为127.0.0.1:9876
bash
nohup java -jar rocketmq-dashboard-1.0.0.jar --server.port=18001 --rocketmq.config.namsrvAddr=127.0.0.1:9876 > dashboard.log 2>&1 &
2.5 访问面板
至此,RocketMQ面板启动完成。但是在实际使用中,还会对RocketMQ的访问增加密码限制,接下来,进行密码设置
三、设置密码
3.1 RocketMQ配置密码
3.1.1 开启acl控制
在conf/broker.conf
中开启aclEnable=true
bash
vim conf/broker.conf
在最底下追加
3.1.2 配置账号密码
修改conf/plain_acl.yml
重启NameServer和Broker
重新访问面板,发现报错了
3.2 配置面板中的密码
3.2.1 在dashboard.jar包同级目录创建config文件夹
3.2.2 上传application.properties
将项目底下的application.properties上传到config文件夹下
3.2.3 修改application.properties
将注释放开,设置对应的账号密码
结果:
3.2.4 重启dashboard
具体操作,参考文章:SpringBoot jar包部署
重新访问面板,发现可正常访问
3.3 面板开启账号密码
当前,已经为RocketMQ设置了密码,但是,还存在问题,操作面板没有设置密码,操作面板没有设置密码,在实际应用中,也是很危险的。下面讲解面板设置密码:
3.3.1 开启账号密码访问
修改application.properties
修改为:
bash
rocketmq.config.loginRequired=true
重新访问,发现需要账号密码
账号密码配置文件为:users.properties
路径:
说明:
得知,管理员默认账号为admin
,密码为admin
.
3.3.2 修改账号密码
将users.properties
上传到config目录,修改内容为
3.3.3 修改默认用户配置文件路径
修改application.properties
bash
vim application.properties
将其修改为:
bash
rocketmq.config.dataPath=./config
3.3.4 重启dashboard
重启后,使用账号zhangsan
,密码:123
登录成功。
至此,RocketMQ部署已经完毕
参考文章:RocketMQ官网快速开始