Linux部署RocketMQ4.5.0集群

15 篇文章 2 订阅
14 篇文章 0 订阅

部署方式

RocketMQ有三种部署方式:
1、2m-2s-async。多主多从异步复制
2、2m-2s-sync。多主多从同步复制
3、2m-noslave。多主无从
本文介绍2m-2s-async多主多从异步复制集群安装方式,集群包含三台节点,各节点Broker分布情况(以下操作,每台服务器都需要,到步骤8结束):

IP节点主服务从服务
192.18.2.4node1broker-abroker-b-s
192.18.2.5node2broker-bbroker-c-s
192.18.2.6node3broker-cbroker-a-s
1,创建安装目录(这是我自定义的安装位置/home/bigdata/install/rocketmq,并且我使用的bigdata用户),并上传资源包。

链接:https://pan.baidu.com/s/1EcMoRTF4pJtAwu99-3oamg
提取码:myqx
在这里插入图片描述

2,解压资源包
unzip rocketmq-all-4.5.0-bin-release.zip  		// 解压

在这里插入图片描述

3,修改解压后的目录名称(主要是目录名称太长,不方便)
mv rocketmq-all-4.5.0-bin-release rocketmq-4.5.0

在这里插入图片描述

4,切换到该目录下的conf,目录结构如图

在这里插入图片描述

5,我们要修改2m-2s-async目录下配置文件,按照三台节点分布情况,分别修改对应的配置文件:

安装包解压后2m-2s-async目录下默认只有broker-a,broker-b相关的四个配置文件,没有broker-c的配置文件。只需要将broker-a或者broker-b任意一份文件复制重命名即可。

cp broker-a.properties broker-c.properties			// 复制
cp broker-a-s.properties broker-c-s.properties		// 复制

在这里插入图片描述

6,修改节点
6.1,修改broker-a.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-a
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.18.2.4:9876;192.18.2.5:9876;192.18.2.6:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#文件磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/bigdata/install/rocketmq/store-a
#commitLog 存储路径
storePathCommitLog=/home/bigdata/install/rocketmq/commitlog-a
#消费队列存储路径存储路径
storePathConsumeQueue=/home/bigdata/install/rocketmq/consumequeue-a
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
6.2,修改broker-b-s.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-b
#0 表示 Master, >0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.18.2.4:9876;192.18.2.5:9876;192.18.2.6:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10921
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/bigdata/install/rocketmq/store-b-s
#commitLog 存储路径
storePathCommitLog=/home/bigdata/install/rocketmq/commitlog-b-s
#消费队列存储路径存储路径
storePathConsumeQueue=/home/bigdata/install/rocketmq/consumequeue-b-s
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
6.3,修改broker-b.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-b
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr:192.18.2.4:9876;192.18.2.5:9876;192.18.2.6:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/bigdata/install/rocketmq/store-b
#commitLog 存储路径
storePathCommitLog=/home/bigdata/install/rocketmq/commitlog-b
#消费队列存储路径存储路径
storePathConsumeQueue=/home/bigdata/install/rocketmq/consumequeue-b
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
6.4,修改broker-c-s.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-c
#0 表示 Master, >0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.18.2.4:9876;192.18.2.5:9876;192.18.2.6:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/bigdata/install/rocketmq/store-c-s
#commitLog 存储路径
storePathCommitLog=/home/bigdata/install/rocketmq/commitlog-c-s
#消费队列存储路径存储路径
storePathConsumeQueue=/home/bigdata/install/rocketmq/consumequeue-c-s
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
6.5,修改broker-c.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-c
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.18.2.4:9876;192.18.2.5:9876;192.18.2.6:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/bigdata/install/rocketmq/store-c
#commitLog 存储路径
storePathCommitLog=/home/bigdata/install/rocketmq/commitlog-c
#消费队列存储路径存储路径
storePathConsumeQueue=/home/bigdata/install/rocketmq/consumequeue-c
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
6.6,修改broker-a-s.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-a
#0 表示 Master, >0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.18.2.4:9876;192.18.2.5:9876;192.18.2.6:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#文件磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/bigdata/install/rocketmq/store-b
#commitLog 存储路径
storePathCommitLog=/home/bigdata/install/rocketmq/commitlog-b
#消费队列存储路径存储路径
storePathConsumeQueue=/home/bigdata/install/rocketmq/consumequeue-b
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
7,配置环境变量,修改/home/bigdata/.bashrc或者(/etc/profile)
// 这里需要注意的是,这个=号后面的路径,要与你解压后的目标保持一致,否则会找不到
export ROCKETMQ_HOME=/home/bigdata/install/rocketmq/rocketmq-4.5.0
export PATH=$PATH:$ROCKETMQ_HOME/bin

//使配置生效,这个不是文件内容,是修改后,要执行的
source /home/bigdata/.bashrc

注意: bashrc这个文件是该bigdata用户下的用户变量文件。你们如果没有,可以去修改/etc/profile系统变量的配置文件

8,启动nameserver,三台服务器分别执行启动命令
nohup sh mqnamesrv > /home/bigdata/install/rocketmq/rocketmq-4.5.0/logs/mqnamesrv.log 2>&1 &

此步骤如果出现以下情况
在这里插入图片描述
解决:在/home/bigdata/install/rocketmq/rocketmq-4.5.0目录下创建一个名为logs的目录

9,三台服务器分别启动不同节点
9.1,ip192.18.2.4启动节点一
//启动broker-a
nohup sh mqbroker -c /home/bigdata/install/rocketmq/rocketmq-4.5.0/conf/2m-2s-async/broker-a.properties > /home/bigdata/install/rocketmq/rocketmq-4.5.0/logs/mqbroker-a.log 2>&1 &
//启动broker-b-s
nohup sh mqbroker -c /home/bigdata/install/rocketmq/rocketmq-4.5.0/conf/2m-2s-async/broker-b-s.properties > /home/bigdata/install/rocketmq/rocketmq-4.5.0/logs/mqbroker-b-s.log 2>&1 &
9.2,ip192.18.2.5启动节点二
//启动broker-b
nohup sh mqbroker -c /home/bigdata/install/rocketmq/rocketmq-4.5.0/conf/2m-2s-async/broker-b.properties > /home/bigdata/install/rocketmq/rocketmq-4.5.0/logs/mqbroker-b.log 2>&1 &
//启动broker-c-s
nohup sh mqbroker -c /home/bigdata/install/rocketmq/rocketmq-4.5.0/conf/2m-2s-async/broker-c-s.properties > /home/bigdata/install/rocketmq/rocketmq-4.5.0/logs/mqbroker-c-s.log 2>&1 &
9.3,ip192.18.2.6启动节点三
//启动broker-c
nohup sh mqbroker -c /home/bigdata/install/rocketmq/rocketmq-4.5.0/conf/2m-2s-async/broker-c.properties > /home/bigdata/install/rocketmq/rocketmq-4.5.0/logs/mqbroker-c.log 2>&1 &
//启动broker-a-s
nohup sh mqbroker -c /home/bigdata/install/rocketmq/rocketmq-4.5.0/conf/2m-2s-async/broker-a-s.properties > /home/bigdata/install/rocketmq/rocketmq-4.5.0/logs/mqbroker-a-s.log 2>&1 &
10,安装监控Console,本地打包并上传到服务器
10.1,进入GitHub网站下载源码,https://github.com/apache/rocketmq-externals。下图中rocketmq-console目录就是监控相关源码,右上角按钮点击可进行ZIP压缩包下载或者使用Git工具下载。

在这里插入图片描述
在这里插入图片描述

10.2,使用开发工具IntelliJ IDEA打开rocketmq-console工程,修改resources目录下application.properties配置文件
server.address=0.0.0.0
server.port=9520

### SSL setting
#server.ssl.key-store=classpath:rmqcngkeystore.jks
#server.ssl.key-store-password=rocketmq
#server.ssl.keyStoreType=PKCS12
#server.ssl.keyAlias=rmqcngkey

#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.level.root=INFO
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.18.2.4: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
#set the message track trace topic if you don't want use the default one
rocketmq.config.msgTrackTopicName=
rocketmq.config.ticketKey=ticket

#Must create userInfo file: ${rocketmq.config.dataPath}/users.properties if the login is required
rocketmq.config.loginRequired=false

#set the accessKey and secretKey if you used acl
#rocketmq.config.accessKey=
#rocketmq.config.secretKey=
10.3,本地启动并测试出现以下效果,环境搭建成功(访问localhost:9520)

在这里插入图片描述

10.4,使用maven工具打包项目(打包后的项目在target目录下)
mvn clean package -Dmaven.test.skip=true

在这里插入图片描述
如果打包出现以下异常:Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17
解决:https://blog.csdn.net/springyh/article/details/88879147

10.5,将target目录下rocketmq-console-ng-1.0.1.jar上传到服务器,使用java -jar命令启动
java -jar 包名 &		// 启动 参数& 使项目在后台运行,关闭服务器也不会停止服务
11,访问服务器ip:9520
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子非我鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值