RocketMQ、Dashboard部署以及安全设置
RocketMQ、dashboard部署以及安全设置
- 一、启动RocketMQ
- 1.1 下载RocketMQ
- 1.2 修改配置文件
- 1.2.1 修改nameServer Jvm内存配置
- 1.2.2 修改broker参数
- 1.3 启动
- 1.3.1 启动NameServer
- 1.3.2 启动Broker
- 1.3.3 测试是否启动成功
- 1.3.3.1 测试消息发送
- 1.3.3.2 测试消息接收
- 1.3.3.3 Java程序发送消息
- 1.3.4 关闭NameServer和broker
- 1.3.5 汇总启动脚本
- 二、启动RocketMQ Dashboard
- 2.1 下载Dashboard源码
- 2.2 Maven打包
- 2.3 上传到Linux服务器
- 2.4 启动Dashboard
- 2.5 访问面板
- 三、设置密码
- 3.1 RocketMQ配置密码
- 3.1.1 开启acl控制
- image-202308142305488723.1.2 配置账号密码
- 3.2 配置面板中的密码
- 3.2.1 在dashboard.jar包同级目录创建config文件夹
- 3.2.2 上传application.properties
- 3.2.3 修改application.properties
- 3.2.4 重启dashboard
- 3.3 面板开启账号密码
- 3.3.1 开启账号密码访问
- 3.3.2 修改账号密码
- 3.3.3 修改默认用户配置文件路径
- 3.3.4 重启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");// 连接namersrvproducer.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源码
RocketMq 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官网快速开始
相关文章:
RocketMQ、Dashboard部署以及安全设置
RocketMQ、dashboard部署以及安全设置 一、启动RocketMQ1.1 下载RocketMQ1.2 修改配置文件1.2.1 修改nameServer Jvm内存配置1.2.2 修改broker参数 1.3 启动1.3.1 启动NameServer1.3.2 启动Broker1.3.3 测试是否启动成功1.3.3.1 测试消息发送1.3.3.2 测试消息接收1.3.3.3 Java程…...
Android AlarmManager设置闹钟
官网镇楼:设置重复闹铃时间 闹钟具有以下特征: 它们可让您按设定的时间和/或间隔触发 intent。您可以将它们与广播接收器结合使用,以启动服务以及执行其他操作。它们在应用外部运行,因此即使应用未运行,或设备本身处…...
【C# 基础精讲】LINQ to XML查询
LINQ to XML 是 C# 中用于查询和操作 XML 数据的强大工具。它允许您使用 LINQ 查询语法对 XML 文档进行查询、过滤、投影等操作,从而更加方便地处理 XML 数据。本文将详细介绍 LINQ to XML 的基本概念、常见操作以及示例,帮助您了解如何在 C# 中使用 LIN…...
Java学习笔记——(20)标识符命名规则和规范
什么叫标识符 Java 对各种变量、方法和类等命名时使用的字符序列成为标识符凡是自己可以起名字的地方都叫标识符 标识符的命名规则(必须遵守) 由26个英文字母大小写,0-9,_ 或 $ 组成数字不可以开头不可以使用关键字和保留字Jav…...
过滤字符,绕过
构造不包含字母和数字的webshell <?phpecho "A"^""; ?>运行结果为! 代码中对字符"A"和字符”"进行了异或操作。在PHP中,两个变量进行异或时,先会将字符串转换成ASCII值,再将ASCII值转换成二进制…...
Apache Doris 入门教程32:物化视图
物化视图 物化视图是将预先计算(根据定义好的 SELECT 语句)好的数据集,存储在 Doris 中的一个特殊的表。 物化视图的出现主要是为了满足用户,既能对原始明细数据的任意维度分析,也能快速的对固定维度进行分析查询。 …...
PHP substr()函数详解,PHP截取字符串。
「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 substr 一、截取字符串二、截取中文字符串三、leng…...
关于flink-sql-connector-phoenix的重写逻辑
目录 重写意义 代码结构 调用链路 POM文件配置 代码解析 一、PhoenixJdbcDynamicTableFactory...
Django进阶:DRF(Django REST framework)
什么是DRF? DRF即Django REST framework的缩写,官网上说:Django REST framework是一个强大而灵活的工具包,用于构建Web API。 简单来说:通过DRF创建API后,就可以通过HTTP请求来获取、创建、更新或删除数据(…...
Flink CDC系列之:Oracle CDC 导入 Elasticsearch
Flink CDC系列之:Oracle CDC 导入 Elasticsearch 一、深入理解Flink Oracle CDC Connector二、创建docker-compose.yml文件三、启动容器四、下载Flink Oracle CDC的jar包五、启动 Flink 集群,再启动 SQL CLI六、检查 ElasticSearch 中的结果七、在 Oracl…...
Linux忘记root密码解决方法
当我们忘记root密码进不去服务器怎么办?不要担心,可以进入到linux的救援模式修改root密码。 下面直接上干货,流程如下: 1.重启电脑,按上下键滑动,保证不进入开机流程,然后按e键 2.出现此页面…...
AR/VR眼镜转接器方案,实现同时传输视频快充方案
简介 虚拟现实头戴显示器设备,简称VR头显VR眼镜,是利用仿真技术与计算机图形学人机接口技术多媒体技术传感技术网络技术等多种技术集合的产品,是借助计算机及最新传感器技术创造的一种崭新的人机交互手段。VR头显VR眼镜是一个跨时代的产品。不…...
ASP.NET Core中路由规则匹配
RESTful约束,如果在一个控制器里面有多个Get、Post...的操作 1、在一个控制器里面可以定义多个API方法 2、通过路由规则来区分 /// <summary> /// 获取用户信息 /// </summary> /// <param name"user"></param> /// <returns…...
IDEA:Error running,Command line is too long. 解决方法
报错如下: Error running SendSmsUtil. Command line is too long. Shorten the command line via JAR manifest or via a classpath file and rerun.原因是启动命令过长。 解决方法: 1、打开Edit Configurations 2、点击Modify options设置&#x…...
什么是反射机制?为什么反射慢?
目录 面试回答 知识扩展 反射常见的使用方式 反射和 Class 的关系 面试回答 反射指的是程序在运行时能够获取自身的信息。在 java 中,只要给定类的名字,那么就可以通过反射机制来获得类的所有属性和方法。 Java 的反射可以: 在运行时判断…...
list元素
列表元素 列表元素分为有序列表和无序列表 有序列表 ol – order list – 有序列表 li – list item – 列表元素 <ol type"1"><li>有序列表1</li><li>有序列表2</li><li>有序列表3</li> </ol>属性 type type属…...
OkHttp 源码浅析一
演进之路:原生Android框架不好用 ---- HttpUrlConnect 和 Apache HTTPClient 第一版 底层使用HTTPURLConnect 第二版 Square构建 从Android4.4开始 基本使用: val okhttp OkHttpClient()val request Request.Builder().url("http://www.baidu.com").buil…...
【解决问题】远程仓库GitHub/GitLab添加了SSH Key之后依然无法clone的解决办法
GitHub/GitLab添加了SSH Key之后依然无法clone的解决办法 问题现象解决办法 问题现象 在Git远程仓库添加了自己的ssh key到账户下,git clone时,依然报错clone失败,请检查是否没有权限进行clone操作。 解决办法 在git的安装目录下ÿ…...
回归预测 | MATLAB实现SA-SVM模拟退火算法优化支持向量机多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现SA-SVM模拟退火算法优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现SA-SVM模拟退火算法优化支持向量机多输入单输出回归预测(多指标,多图)效果一览基本…...
Spring事务和事务传播机制(1)
前言🍭 ❤️❤️❤️SSM专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 在Spring框架中,事务管理是一种用于维护数据库操作的一致性和…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
