当前位置:   article > 正文

ubuntu搭建rocketmq集群,rocketmq集群部署 4.9.4 版本(非docker)_rocketmq 4.9.4

rocketmq 4.9.4

说明:博主使用6台ubuntu虚拟机进行集群搭建,均已安装完毕jdk1.8(必需),分别如下

服务器ip用途
192.168.44.131nameserver
192.168.44.132nameserver
192.168.44.133broker-a master
192.168.44.134broker-a slave
192.168.44.135broker-b master
192.168.44.137broker-b slave

具体步骤如下:
(一)下载程序包并解压

博主下载的是最新的4.9.4版本,它的nameserver和broker是同一套程序,只是不同的启动脚本

博主使用ubuntu虚拟机6台

#跳转到根目录
cd /
#创建 data 目录
mkdir data
#进入 data 目录
cd data/
#下载rocketmq
wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
#解压到data目录
unzip rocketmq-all-4.9.4-bin-release.zip
#创建 rocketmq 目录
mkdir rocketmq
#把解压完毕的程序文件转移到新目录(或者你直接改名原解压目录)
mv rocketmq-all-4.9.4-bin-release ./rocketmq
#删除原目录
rm -r rocketmq-all-4.9.4-bin-release
#进入配置目录
cd /data/rocketmq/conf
#修改日志默认目录
sed -i 's#${user.home}#/data/rocketmq#g' *.xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

(二)搭建nameserver集群(两台服务器)

一般nameserver集群至少三台,但是博主虚拟机实在是开不了了,所以这里只弄了两台测试,能实现集群效果就可以了。两台nameserver集群启动和配置方式一样,博主这里使用自定义的日志目录,其它没变动

#启动程序
nohup sh /data/rocketmq/bin/mqnamesrv &
  • 1
  • 2

查看日志是否启动成功

cat /data/rocketmq/logs/rocketmqlogs/namesrv.log
  • 1

如果出现

The Name Server boot success.
  • 1

在这里插入图片描述

表示启动成功!

另外,该版本程序默认的运行内存是2g,如果需要调整,可以在程序的bin目录下对 runserver.cmd 内容进行编辑

"JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g"
  • 1

编辑完成保存后重启即可

(三)搭建broker集群(四台服务器 主从+主从,sync同步刷新)

每对主从的名称一致,brokerId 区分

(1)首先更改运行内存

#进入bin目录
cd /data/rocketmq/bin/
#更改broker占用内存
vi runbroker.sh
  • 1
  • 2
  • 3
  • 4

做测试小点就可以,博主改为了256m,如果不改的话,你的虚拟机内存不够会启动失败

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m"
  • 1

(2)其次更改配置文件并运行

#进入主从同步配置文件存放目录
cd /data/rocketmq/conf/2m-2s-sync
  • 1
  • 2

master:

#编辑broker-a的master配置文件
cat > broker-a.properties <<EOF
brokerClusterName=GbxCluster
#namesrver的地址,每一个broker配置全部nameserver信息
namesrvAddr=192.168.44.131:9876;192.168.44.132:9876
brokerName=broker-a
#0为master,大于0为slave
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=SYNC_FLUSH
listenPort=10911
defaultTopicQueueNums=4
#是否允许自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#自定义存储路径,根据需求进行配置绝对路径,默认是home目录下面
storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog
EOF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

启动master程序

nohup sh /data/rocketmq/bin/mqbroker -c /data/rocketmq/conf/2m-2s-sync/broker-a.properties &
  • 1

slave:

#编辑broker-a的slave配置文件
cat > broker-a-s.properties <<EOF
brokerClusterName=GbxCluster
#namesrver的地址,每一个broker配置全部nameserver信息
namesrvAddr=192.168.44.131:9876;192.168.44.132:9876
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=SYNC_FLUSH
listenPort=10911
defaultTopicQueueNums=4
#是否允许自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=false
#是否允许自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=false
#自定义存储路径,根据需求进行配置绝对路径,默认是home目录下面
storePathRootDir=/data/rocketmq/store
storePathCommitLog=/data/rocketmq/store/commitlog
EOF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

启动slave程序

nohup sh /data/rocketmq/bin/mqbroker -c /data/rocketmq/conf/2m-2s-sync/broker-a-s.properties &
  • 1

查看broker是否启动成功

#查看端口占用
netstat -ntulp
  • 1
  • 2

当看到 10909,10911,10912 端口被java占用时基本上就可以确定程序启动成功了,如果不放心可以去日志中查看
在这里插入图片描述

按照同样配置修改broker-b的对应配置文件,除了

brokerName=broker-b
  • 1

其他都不变,一一对应即可,然后使用对应的配置文件启动broker-b的程序

启动 broker-b 的master

nohup sh /data/rocketmq/bin/mqbroker -c /data/rocketmq/conf/2m-2s-sync/broker-b.properties &
  • 1

查看日志是否启动成功

启动 broker-b 的slave

nohup sh /data/rocketmq/bin/mqbroker -c /data/rocketmq/conf/2m-2s-sync/broker-b-s.properties &
  • 1

(四)安装消息看板平台

服务都安装完成了,为了直观的看到相关状态,一般还需要安装展示看板平台

源码下载地址:

https://codeload.github.com/apache/rocketmq-externals/zip/refs/tags/rocketmq-console-1.0.0
  • 1

下载下来的源码是springboot框架,根据里边的文档添加上nameserver的地址端口,启动它,就可以看到直观的消息队列集群了(正式部署的话自己打个包就行了)。

博主的配置:

server.contextPath=
server.port=8080
#spring.application.index=true
spring.application.name=rocketmq-console
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.config=classpath:logback.xml
#if this value is empty,use env value rocketmq.config.namesrvAddr  NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
rocketmq.config.namesrvAddr=192.168.44.131:9876
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
rocketmq.config.isVIPChannel=
#rocketmq-console's data path:dashboard/monitor
rocketmq.config.dataPath=/tmp/rocketmq-console/data
#set it false if you don't want use dashboard.default true
rocketmq.config.enableDashBoardCollect=true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

启动后,进入页面,点击集群,如果能看到你部署的完整集群信息就表示成功了,否则集群可能有问题(我这里点击集群后出来的比较慢,你可以在F12中查看是否有消息返回)。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/877398
推荐阅读
相关标签
  

闽ICP备14008679号