RocketMQ、Dashboard部署以及安全设置

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源码

RocketMq 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官网快速开始

相关推荐
Jeff-Jiang1 天前
Kafka、RabbitMQ、RocketMQ对比
kafka·rabbitmq·rocketmq
Yweir3 天前
SpringCloud 微服务消息队列灰度方案 (RocketMQ 4.x)
spring cloud·微服务·rocketmq
晓琴儿4 天前
C++使用开源ConcurrentQueue库处理自定义业务数据类
c++·rocketmq·信息与通信·concurrentqueue
不想睡觉的橘子君8 天前
【MQ】RabbitMQ、RocketMQ、kafka特性对比
kafka·rabbitmq·rocketmq
厌世小晨宇yu.9 天前
RocketMQ学习笔记
笔记·学习·rocketmq
洛卡卡了9 天前
如何选择最适合的消息队列?详解 Kafka、RocketMQ、RabbitMQ 的使用场景
kafka·rabbitmq·rocketmq
菜鸟起航ing10 天前
Spring Cloud Alibaba
spring cloud·java-ee·rocketmq
乄bluefox11 天前
学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)
java·spring boot·中间件·rocketmq
虽千万人 吾往矣13 天前
golang rocketmq开发
开发语言·golang·rocketmq
HippoSystem13 天前
[RocketMQ 5.3.1] Win11 + Docker Desktop 本地部署全流程 + 踩坑记录
rocketmq