RocketMQ、dashboard部署以及安全设置
一、启动RocketMQ
1.1 下载RocketMQ
RocketMQ安装包下载地址:https://rocketmq.apache.org/download
在/opt文件夹下建立rocketmq文件夹,存放rocketmq相关文件
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直接下载到当前路径
wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.3/rocketmq-all-5.1.3-bin-release.zip
如果没有wget,先进行安装
yum -y install wget
下载成功
使用unzip解压
unzip rocketmq-all-5.1.3-bin-release.zip
如果没有unzip,则先安装
yum install -y unzip zip
查看结果
修改文件夹名字(文件夹名字太长,看着不舒服)
mv rocketmq-all-5.1.3-bin-release rocketmq-5.1.3
至此,RocketMQ相关文件准备工作已完成
1.2 修改配置文件
由于RocketMQ默认配置比较高,我们要根据自己的机器配置调整相关参数。(如果机器配置比较高,可以直接调到1.3 启动章节)
1.2.1 修改nameServer Jvm内存配置
/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参数
vim runbroker.sh
- -Xms -Xmx 上面已经说明了
- -XX:MaxDirectMemorySize 用于设置直接内存的最大大小。
根据机器配置,修改为以下:
1.2.3 修改broker配置
cd /opt/rocketmq/rocketmq-5.1.3/conf/
1.3 启动
1.3.1 启动NameServer
# 启动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
# 在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 测试消息发送
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
成功示例:
1.3.3.2 测试消息接收
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
成功示例:
1.3.3.3 Java程序发送消息
注意linux服务器要开放对应的端口!
Maven项目引入依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>5.1.1</version>
</dependency>
测试类
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
# 关闭broker
sh bin/mqshutdown broker
# 关闭namesrv
sh bin/mqshutdown namesrv
1.3.5 汇总启动脚本
结合前面的脚本,汇总成一个统一的脚本
创建文件
vim restart.sh
脚本内容
# 关闭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包
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
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
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
修改为:
rocketmq.config.loginRequired=true
重新访问,发现需要账号密码
账号密码配置文件为:users.properties
路径:
说明:
得知,管理员默认账号为admin
,密码为admin
.
3.3.2 修改账号密码
将users.properties
上传到config目录,修改内容为
3.3.3 修改默认用户配置文件路径
修改application.properties
vim application.properties
将其修改为:
rocketmq.config.dataPath=./config
3.3.4 重启dashboard
重启后,使用账号zhangsan
,密码:123
登录成功。
至此,RocketMQ部署已经完毕
参考文章:RocketMQ官网快速开始