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框架中,事务管理是一种用于维护数据库操作的一致性和…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...