RocketMQ集群搭建,及RocketMQ-Dashboard部署(前RocketMQ-Console)

2024-08-30 07:36

本文主要是介绍RocketMQ集群搭建,及RocketMQ-Dashboard部署(前RocketMQ-Console),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

集群搭建 

RocketMQ不支持单主机搭建主从结构集群,当从节点启动时,即使和主节点设置不同的监听端口,他也要去监听主节点端口,也就是说正常启动的从节点会监听四个端口。原因未知,现象后面会列举出来。

1. 准备JAVA环境,下载RocketMQ包

Rocket是由Java开发的一款消息中间件,所以我们需要先下载Java环境,才能正常运行。

yum install java-1.8.0-openjdk

如果显示找不到包,可以通过下面的文章配置自己CentOS版本和架构对应的阿里源 

Centos替换yum阿里云源,epel源(最简单)icon-default.png?t=N7T8https://blog.csdn.net/dxh9231028/article/details/140790971?spm=1001.2014.3001.5502准备好Java环境后,进入RocketMQ官网,点击右上位置的DownLoad按钮,进入下载页面。

右键点击想要下载的版本的二进制包,复制链接

进入主机终端,通过wget下载RocketMQ压缩包,并解压。 我使用的命令是下载5.3.0版本的RocketMQ,命令如下:

#进入根目录
cd /#下载RocketMQ
wget https://dist.apache.org/repos/dist/release/rocketmq/5.3.0/rocketmq-all-5.3.0-bin-release.zip#解压RocketMQ压缩包
unzip /rocketmq-all-5.3.0-bin-release.zip#删除压缩包
rm -rf /rocketmq-all-5.3.0-bin-release.zip#将解压缩的RocketMQ改名
mv /rocketmq-all-5.3.0-bin-release/ /rocketmq

2. 修改配置文件

进入rocketmq文件夹中,查看conf内容可以看到如下内容

cd /rocketmq/
ll ./conf/

其中,前面三个文件夹分别是两主两从同步同步数据集群,两主两从异步同步数据集群,以及两主无从集群,Rocket已经给了我们基本配置,我们这俩选择两主两从同步同步数据集群。

如果是虚拟机环境,可以在一个主机上将四个主机的配置都配置好,然后在克隆当前主机四份,修改ip即可。而如果真实环境下,则需要分别在不同主机配置。 修改命令及内容如下

#修改a主机的配置文件的命令
vim ./conf/2m-2s-async/broker-a.properties#==============================配置内容如下==================================
#自带的配置
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
#手动添加的配置
namesrvAddr=192.168.166.21:9876;192.168.166.22:9876
#修改a从机的配置文件的命令
vim ./conf/2m-2s-async/broker-a-s.properties#==============================配置内容如下==================================
#自带的配置
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH#手动添加的配置
namesrvAddr=192.168.166.21:9876;192.168.166.22:9876
#修改b从机的配置文件的命令
vim ./conf/2m-2s-async/broker-b-s.properties#==============================配置内容如下==================================
#自带的配置
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH]#手动添加的配置
#listenPort和haListenPort默认为10911和10912,可以不用改,我是为了测试从节点会监听主节点端口
listenPort=10913
haListenPort=10914
namesrvAddr=192.168.166.21:9876;192.168.166.22:9876

可以看到,四个节点的配置都只需要添加namesrvAddr地址的集群即可,其他的配置都已经是配置好了的,其中brokerName实际上更像是一个组的概念,brokerName相同的节点之间会构成主从关系,而brokerId只需要在这个组内不重复即可。

每个节点默认监听10911和10912两个端口,可以不用指定,最后一个从节点我指定了,是为了测试文章开头提到的问题。

3. 修改启动脚本(根据内存大小可选)

Rocket启动脚本是bin目录下的mqbroker文件,脚本启动时会向jvm申请8G内存,不过在虚拟机环境下,通常不会有这么多内存,所以为了集群的正常启动,我们需要修改启动脚本中的内容,类似下面的这个指令:

JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"

mqbroker脚本内部还会执行runbroker.sh,上述指令存在于两个文件中的一个,大概率在runbroker.sh文件中,我们文件中找到类似的内容,修改为如下内容:

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"

生产环境下,如果内存足够,无需修改。

4. 启动集群

1. 启动nameServer集群

RocketMQ依赖nameServer处理集群元数据,所以我们要先讲配置中的nameServer集群启动,在配置的主机中执行如下命令,启动nameServer。

/rocketmq/bin/mqnamesrv

看到如下信息后证明nameServer节点启动成功 

2. 启动RocketMQ集群 

必须nameServer集群中节点全部启动后,我们在继续启动各个RocketMQ节点,在各个主机分别执行如下命令:

#启动a主节点
/rocketmq/bin/mqbroker -c /rocketmq/conf/2m-2s-async/broker-a.properties#启动a从节点
/rocketmq/bin/mqbroker -c /rocketmq/conf/2m-2s-async/broker-a-s.properties#启动b主节点
/rocketmq/bin/mqbroker -c /rocketmq/conf/2m-2s-async/broker-b.properties#启动b从节点
/rocketmq/bin/mqbroker -c /rocketmq/conf/2m-2s-async/broker-b-s.properties

看到最后一行为类似如下内容证明启动成功

 5. 验证从节点监听主节点端口问题 

我们验证b从节点所在主机监听端口发现,其不仅监听自己配置的端口,还监听主节点所监听的端口。内容如下:

在这种情况,RocketMQ无法进行单主机搭建集群测试,因为从节点会多监听两个主节点的端口。

当主节点未启动时,从节点会多监听一个主节点的listenPort端口,也就是监听三个端口,而当主节点启动后,从节点会多监听一个主节点的haListenPort端口,也就是同事监听四个端口。

这和默认端口无关,因为更改主节点端口,从节点监听的端口也会改变,完全就是跟着主节点变,并且主节点不会监听从节点端口,这一现象很奇怪,不知道原因。

RocketMQ-Dashboard可视化界面部署

RocketMQ-Console是RocketMQ官方推出的一款RocketMQ的可视化工具,目前已经更名为RocketMQ-Dashboard,独立在一个git仓库,部署步骤如下:

1. 下载源码并打包

我们可以进入到RocketMQ-Dashboard的github网站,通过git命令拉取源码,或者直接下载压缩文件

修改项目中application.yml文件中的如下内容,配置nameServer集群的ip和端口:

rocketmq:config:namesrvAddrs:- 192.168.166.21:9876- 192.168.166.22:9876

通过如下命令打包

mvn clean package -Dmaven.test.skip=true

我们在其项目的readme文件中也能看到其打包和运行指令

2. 启动jar包 

将打包后的jar包传入服务器或虚拟机后,通过如下命令启动:

java -jar ./rocketmq-dashboard-1.0.1-SNAPSHOT.jar

看到如下内容证明启动成功

3. 验证RocketMQ-DashBoard和集群的部署

访问启动服务的地址的8080端口,进入可视化页面,点击集群,可以查看我们的全部集群节点信息。

这篇关于RocketMQ集群搭建,及RocketMQ-Dashboard部署(前RocketMQ-Console)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120193

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus