RocketMQ、Dashboard部署以及安全设置

一、启动RocketMQ

1.1 下载RocketMQ

RocketMQ安装包下载地址:https://rocketmq.apache.org/download

image-20230812211334234

在/opt文件夹下建立rocketmq文件夹,存放rocketmq相关文件

cd /opt
mkdir rocketmq
cd rocketmq/

复制RocketMQ下载路径

image-20230812212341436

以当前最新版: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

下载成功

image-20230813002312327

使用unzip解压

unzip rocketmq-all-5.1.3-bin-release.zip

如果没有unzip,则先安装

yum install -y unzip zip

查看结果

image-20230813152634278

修改文件夹名字(文件夹名字太长,看着不舒服)

mv rocketmq-all-5.1.3-bin-release rocketmq-5.1.3

image-20230813152742574

至此,RocketMQ相关文件准备工作已完成

1.2 修改配置文件

由于RocketMQ默认配置比较高,我们要根据自己的机器配置调整相关参数。(如果机器配置比较高,可以直接调到1.3 启动章节)

1.2.1 修改nameServer Jvm内存配置

/opt/rocketmq/rocketmq-5.1.3/bin
vim  runserver.sh

修改-Xms4g -Xmx4g -Xmn2g,三个参数

image-20230813154820305

  • Xms 为jvm启动时分配的内存,比如-Xms512m,表示分配512M
  • Xmx 为jvm运行过程中分配的最大内存,比如-Xms512m,表示jvm进程最多只能够占用512M内存
  • Xmn 堆内新生代的大小,-Xmn256m代表新生代大小为256M

在这边,根据自己的配置,调整为以下参数:

image-20230813160210939

1.2.2 修改broker参数

vim runbroker.sh

image-20230813160509019

  • -Xms -Xmx 上面已经说明了
  • -XX:MaxDirectMemorySize 用于设置直接内存的最大大小。

根据机器配置,修改为以下:

image-20230813160610504

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

成功示例:

image-20230814215834502

1.3.3.2 测试消息接收
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

成功示例:

image-20230815102513753

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();
  }
}

输出:

image-20230814220522423

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

RocketMq Dashboard下载地址

image-20230814224704507

下载到本地或者Linux环境(因为我只有本地有Maven,所以下载到Windows环境)

image-20230814224855505

2.2 Maven打包

解压后,进入文件夹

image-20230814225009203

执行Maven命令,打出对应jar包

mvn clean package

2.3 上传到Linux服务器

target文件夹底下的rocketmq-dashboard-1.0.0.jar上传到服务器

image-20230814225223551

image-20230814225308186

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 访问面板

image-20230814225640327

至此,RocketMQ面板启动完成。但是在实际使用中,还会对RocketMQ的访问增加密码限制,接下来,进行密码设置

三、设置密码

3.1 RocketMQ配置密码

3.1.1 开启acl控制

conf/broker.conf中开启aclEnable=true

vim conf/broker.conf

在最底下追加

image-202308142305488723.1.2 配置账号密码

修改conf/plain_acl.yml

image-20230814232003165

重启NameServer和Broker

重新访问面板,发现报错了

image-20230814234746516

3.2 配置面板中的密码

3.2.1 在dashboard.jar包同级目录创建config文件夹

image-20230814235138344

3.2.2 上传application.properties

将项目底下的application.properties上传到config文件夹下

image-20230814235226178

image-20230814235638553

3.2.3 修改application.properties

将注释放开,设置对应的账号密码

image-20230814235346543

结果:

image-20230814235535285

3.2.4 重启dashboard

具体操作,参考文章:SpringBoot jar包部署

重新访问面板,发现可正常访问

3.3 面板开启账号密码

当前,已经为RocketMQ设置了密码,但是,还存在问题,操作面板没有设置密码,操作面板没有设置密码,在实际应用中,也是很危险的。下面讲解面板设置密码:

3.3.1 开启账号密码访问

修改application.properties

image-20230815000509925

修改为:

rocketmq.config.loginRequired=true

重新访问,发现需要账号密码

image-20230815000731296

账号密码配置文件为:users.properties

路径:

image-20230815002036146

说明:

image-20230815001101361

得知,管理员默认账号为admin,密码为admin.

3.3.2 修改账号密码

users.properties上传到config目录,修改内容为

image-20230815001413186

3.3.3 修改默认用户配置文件路径

修改application.properties

vim application.properties

image-20230815002119132

将其修改为:

rocketmq.config.dataPath=./config

3.3.4 重启dashboard

重启后,使用账号zhangsan,密码:123 登录成功。

image-20230815213015366

至此,RocketMQ部署已经完毕

参考文章:RocketMQ官网快速开始

要在 Docker 中配置 RocketMQ 账号密码,需要进行以下步骤: 1. 创建一个自定义的配置文件,在该文件中添加以下内容: ``` brokerClusterName=rocketmq-cluster brokerName=rocketmq-broker brokerId=0 deleteWhen=04 fileReservedTime=48 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH storePathRootDir=/opt/rocketmq/store storePathCommitLog=/opt/rocketmq/store/commitlog autoCreateTopicEnable=true # 开启身份验证功能 brokerAuthenticate=true # 使用简单文本方式进行身份验证 brokerAuthMethod=SimplePlaintext # 配置用户名和密码 users=your_username=your_password # 配置访问控制列表,这里允许该用户对所有主题进行读写操作 acls=your_username={topicPerm={read=*:*,write=*:*}} ``` 2. 将上述配置文件保存为 custom-broker.conf 文件。 3. 启动 RocketMQ Broker 时,使用 -c 参数指定 custom-broker.conf 文件的路径,例如: ``` docker run -d \ -e "JAVA_OPTS=-Duser.home=/opt" \ -p 9876:9876 \ -v /path/to/custom-broker.conf:/opt/rocketmq/conf/broker.conf \ --name rocketmq-broker \ rocketmqinc/rocketmq:4.9.1 sh mqbroker -c /opt/rocketmq/conf/broker.conf ``` 4. 将 your_username 和 your_password 分别替换为你要配置的用户名和密码。 5. 启动 RocketMQ Broker 容器后,就可以使用用户名和密码进行身份验证了。 注意:以上命令中的 -e "JAVA_OPTS=-Duser.home=/opt" 参数是为了解决容器内无法找到用户 home 目录的问题,如果你的容器已经设置了用户 home 目录,可以不用添加该参数。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶只有影子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值