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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/80943.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SparkSQL源码分析系列03-Antlr4分析测试

SparkSQL主要通过Antlr4定义SQL的语法规则&#xff0c;完成SQL词法&#xff0c;语法解析&#xff0c;最后将SQL转化为抽象语法树。所以有必要先了解下Antlr4的工作流程。 ANTLR4是什么&#xff1f; ANTLR 是 ANother Tool for Language Recognition 的缩写&#xff0c;官网&a…

3D沉浸式旅游网站开发案例复盘【Three.js】

Plongez dans Lyon网站终于上线了。 我们与 Danka 团队和 Nico Icecream 共同努力&#xff0c;打造了一个令我们特别自豪的流畅的沉浸式网站。 这个网站是专为 ONLYON Tourism 和会议而建&#xff0c;旨在展示里昂最具标志性的活动场所。观看简短的介绍视频后&#xff0c;用户…

数据结构基础

将节点构建成树 数据的结构逻辑结构集合线性结构树形结构图状结构 存储结构合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如…

vue2.0/vue3.0学习笔记——2022.08.16

vue2&#xff08;查漏补缺&#xff09; 一、vue基础 内置指令&#xff08;查漏补缺&#xff09; 1、v-text 更新元素的textContent 2、v-html 更新元素的innerHtml 3、v-cloak 防止闪现&#xff0c;与css配合: [v-cloak] {dispaly: none} 4、v-once 在初次动态渲染厚&#x…

wxPython使用matplotlib绘制动态曲线

1.思路 我们创建了一个继承自wx.Frame的自定义窗口类MyFrame。在MyFrame的构造函数中&#xff0c;我们创建了一个matplotlib的Figure对象和一个FigureCanvas对象&#xff0c;用于在窗口中显示绘图结果。然后&#xff0c;我们使用numpy生成了一个包含100个点的x轴坐标数组self.…

Java IO流(二)IO模型(BIO|NIO|AIO)

概述 Java IO模型同步阻塞IO&#xff08;BIO&#xff09;、同步非阻塞IO&#xff08;NIO&#xff09;、异步非阻塞IO&#xff08;AIO/NIO2&#xff09;,Java中的BIO、NIO和AIO理解为是Java语言对操作系统的各种IO模型的封装 IO模型 BIO(Blocking I/O) 概述 BIO是一种同步并阻…

Linux实用运维脚本分享

Linux实用运维脚本分享&#x1f343; MySQL备份 目录备份 PING查询 磁盘IO检查 性能相关 进程相关 javadump.sh 常用工具安装 常用lib库安装 系统检查脚本 sed进阶 MySQL备份 #!/bin/bashset -eUSER"backup" PASSWORD"backup" # 数据库数据目录…

C++ Builder 关于TRichEdit的字符颜色标记处理

//积累经验每一天&#xff0c;以后忘记好搜索 void __fastcall TForm2::btn3Click(TObject *Sender) { //初始化验证 mmo->SelStart0; mmo->SelLengthmmo->Text.Length(); mmo->SelAttributes->ColorclBlack; String CGhEd…

如何使用Kali Linux进行渗透测试?

1. 渗透测试简介 渗透测试是通过模拟恶意攻击&#xff0c;评估系统、应用或网络的安全性的过程。Kali Linux为渗透测试人员提供了丰富的工具和资源&#xff0c;用于发现漏洞、弱点和安全风险。 2. 使用Kali Linux进行渗透测试的步骤 以下是使用Kali Linux进行渗透测试的基本…

visual studio 2017 运行的程序关闭后不能再运行?(visual studio建立项目之后退出,如何再次完整打开项目?)

在你储存项目的文件夹里面应该是这样的 里面.vcxproj后缀名的就是原来创建的项目&#xff0c;直接打开这个头文件源文件就会一起出来了&#xff01; 真的管用&#xff0c;亲测有效。

干翻Dubbo系列第十二篇:Dubbo协议介绍

文章目录 文章说明 一&#xff1a;Dubbo协议 1&#xff1a;Dubbo协议简介 2&#xff1a;Dubbo协议优点 3&#xff1a;Dubbo协议帧的组成 (一)&#xff1a;幻数 (二)&#xff1a;2Way (三)&#xff1a;event (四)&#xff1a;Serilization ID (五)&#xff1a;status …

【C++进阶】继承、多态的详解(多态篇)

【C进阶】继承、多态的详解&#xff08;多态篇&#xff09; 目录 【C进阶】继承、多态的详解&#xff08;多态篇&#xff09;多态的概念多态的定义及实现多态的构成条件&#xff08;重点&#xff09;虚函数虚函数的重写&#xff08;覆盖、一种接口继承&#xff09;C11 override…

常见指令以及权限理解

常见指令以及权限理解 命令格式&#xff1a; command [-options] parameter1 parameter1 命令 选项 参数1 参数2 1.command为命令名称&#xff0c;例如变化目录的cd等 2.中括号[ ]实际在命令中是不存在的&#xff0c;这个中括号代表可选&#xff0c;通常选项前面会添加一个符号…

K8S deployment挂载

挂载到emptyDir 挂载在如下目录&#xff0c;此目录是pod所在的node节点主机的目录&#xff0c;此目录下的data即对应容器里的/usr/share/nginx/html&#xff0c;实现目录挂载&#xff1b;图1红框里的号对应docker 的name中的编号&#xff0c;如下俩个图 apiVersion: apps/v1 k…

Sentinel规则持久化

首先 Sentinel 控制台通过 API 将规则推送至客户端并更新到内存中&#xff0c;接着注册的写数据源会将新的规则保存到本地的文件中。 示例代码&#xff1a; 1.编写处理类 //规则持久化 public class FilePersistence implements InitFunc {Value("spring.application:n…

Qt应用开发(基础篇)——高级纯文本窗口 QPlainTextEdit

一、前言 QPlainTextEdit类继承于QAbstractScrollArea&#xff0c;QAbstractScrollArea继承于QFrame&#xff0c;是Qt用来显示和编辑纯文本的窗口。 滚屏区域基类https://blog.csdn.net/u014491932/article/details/132245486?spm1001.2014.3001.5501框架类QFramehttps://blo…

服务器数据库中了360后缀勒索病毒怎么办?360后缀勒索病毒的加密形式

随着信息技术的发展&#xff0c;企业的计算机服务器数据库变得越来越重要。然而&#xff0c;在数字时代&#xff0c;网络上的威胁也日益增多。近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的计算机服务器遭到了360后缀勒索病毒的攻击&#xff0c;导致服务器内的所有…

【计算机视觉】相机基本知识(还在更新)

1.面阵工业相机与线阵工业相机 1.1 基本概念区别 面阵相机则主要采用的连续的、面状扫描光线来实现产品的检测&#xff1b; 线阵相机即利用单束扫描光来进行物体扫描的工作的。 1.2 优缺点 &#xff08;1&#xff09;面阵CCD工业相机&#xff1a; 优点&#xff1a;应用面…

Maven - 统一构建规范:Maven 插件管理最佳实践

文章目录 Available Plugins开源项目中的使用插件介绍maven-jar-pluginmaven-assembly-pluginmaven-shade-pluginShade 插件 - 标签artifactSetrelocationsfilters 完整配置 Available Plugins https://maven.apache.org/plugins/index.html Maven 是一个开源的软件构建工具&…

图数据库_Neo4j和SpringBoot整合使用_创建节点_删除节点_创建关系_使用CQL操作图谱---Neo4j图数据库工作笔记0009

首先需要引入依赖 springboot提供了一个spring data neo4j来操作 neo4j 可以看到它的架构 这个是下载下来的jar包来看看 有很多cypher对吧 可以看到就是通过封装的驱动来操作graph database 然后开始弄一下 首先添加依赖