rocketMQ集群的搭建

rocketMQ 集群安装

集群配置

主机 id主机名
192.168.154.4master1(nameserver1)
192.168.154.5master1-slave1(nameserver2)
192.168.154.6master2(nameserver3)
192.168.154.7master2-slave1(nameserver3)

根据以上内容修改 hosts 文件

vim /etc/hosts

192.168.154.4   nameserver1
192.168.154.4   master1
192.168.154.5   nameserver2
192.168.154.5   master1-slave1
192.168.154.6   nameserver3
192.168.154.6   master2
192.168.154.7   nameserver4
192.168.154.7   master2-slave1

安装步骤

1. 下载相关软件并配置相关目录

mkdir /opt/rocketmq
cd /opt/rocketmq && wgt https://archive.apache.org/dist/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip  ## 不一定能成功,因为 Oracle 需要登录,若链接失效,直接在浏览器上搜索“rocketmq4.0.0”,找到官网即可。
unzip rocketmq-all-4.0.0-incubating-bin-release.zip
mv apache-rocketmq-all/ /app/rocketmq4.0.0

### 创建持久化存储目录
mkdir -p /opt/rocketmq/rocketmq4.0.0/store/commitlog
mkdir -p /opt/rocketmq/rocketmq4.0.0/store/consumequeue
mkdir -p /opt/rocketmq/rocketmq4.0.0/store/index

2. 修改相关的配置文件

## nameserver1

vim /opt/rocketmq/rocketmq4.0.0/conf/2m-2s-async/broker-a.properties  # 主要修改目录和ip地址
## 可以使用 sed 命令,批量修改目录:sed -i.bk 's#app#opt/rocketmq#g' broker-a.properties
-------------------------------------------------------------------
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=nameserver1:9876;nameserver2:9876;nameserver3:9876;nameserver4:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq/rocketmq4.0.0/store
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq/rocketmq4.0.0/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq/rocketmq4.0.0/store/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq/rocketmq4.0.0/store/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq/rocketmq4.0.0/store/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq/rocketmq4.0.0/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
#强制指定本机IP,需要根据每台机器进行修改。官方介绍可为空,系统默认自动识别,但多网卡时IP地址可能读取错误
brokerIP1=192.168.154.4
## nameserver2
cat /opt/rocketmq/rocketmq4.0.0/conf/2m-2s-async/broker-a-s.properties  # 要求和上文件一样

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=nameserver1:9876;nameserver2:9876;nameserver3:9876;nameserver4:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq/rocketmq4.0.0/store
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq/rocketmq4.0.0/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq/rocketmq4.0.0/store/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq/rocketmq4.0.0/store/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq/rocketmq4.0.0/store/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq/rocketmq4.0.0/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
#强制指定本机IP,需要根据每台机器进行修改。官方介绍可为空,系统默认自动识别,但多网卡时IP地址可能读取错误
brokerIP1=192.168.154.5
## nameserver3
cat /opt/rocketmq/rocketmq4.0.0/conf/2m-2s-async/broker-b.properties

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=nameserver1:9876;nameserver2:9876;nameserver3:9876;nameserver4:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq/rocketmq4.0.0/store
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq/rocketmq4.0.0/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq/rocketmq4.0.0/store/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq/rocketmq4.0.0/store/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq/rocketmq4.0.0/store/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq/rocketmq4.0.0/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
#强制指定本机IP,需要根据每台机器进行修改。官方介绍可为空,系统默认自动识别,但多网卡时IP地址可能读取错误
brokerIP1=192.168.154.6
## nameserver4
cat /opt/rocketmq/rocketmq4.0.0/conf/2m-2s-async/broker-b-s.properties

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=nameserver1:9876;nameserver2:9876;nameserver3:9876;nameserver4:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq/rocketmq4.0.0/store
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq/rocketmq4.0.0/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq/rocketmq4.0.0/store/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq/rocketmq4.0.0/store/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq/rocketmq4.0.0/store/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq/rocketmq4.0.0/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
#强制指定本机IP,需要根据每台机器进行修改。官方介绍可为空,系统默认自动识别,但多网卡时IP地址可能读取错误
brokerIP1=192.168.54.7

3. 修改日志路径(安装时报错)

cp  /opt/rocketmq/rocketmq4.0.0/conf/log* /opt/rocketmq/  # 四个服务器都弄,复制这四个文件:logback_broker.xml、logback_filtersrv.xml、logback_namesrv.xml、logback_tools.xml

4. java内存的调整

### 非必须,但是自己测试的时候要改
## 1. 修改runserver.sh
vim /opt/rocketmq/rocketmq4.0.0/bin/runserver.sh
------------------------------------------------------------------------------------------
# 修改这行代码中的几个数值
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

## 2. 修改 runbroker.sh
vim /opt/rocketmq/rocketmq4.0.0/bin/runbroker.sh
------------------------------------------------------------------------------------------
# 修改这行代码中的几个数值
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512 -Xmn256m"

5. 安装 jdk

## 下载 jdk
cd /usr/local/src/ && wget https://download.oracle.com/otn/java/jdk/8u333-b02/2dee051a5d0647d5be72a7c0abff270e/jdk-8u333-linux-x64.tar.gz?AuthParam=1655868992_9b06758eacacb24105a5aa25902c4f80
tar -zxvf jdk-8u333-linux-x64.tar.gz
## 修改环境变量
vim /etc/profile
------------------------------------
export JAVA_HOME=/usr/local/src/jdk1.8.0_333
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# 上面时盲打的
export JAVA_HOME=/usr/local/src/jdk1.8.0_333
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
-------------------------------------------
source /etc/profile
java -version

java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)

6. 启动服务

### 四个都做
nohup sh /opt/rocketmq/rocketmq4.0.0/bin/mqnamesrv > /opt/rocketmq/rocketmq4.0.0/mqnameserv.log 2>&1 &
cat /opt/rocketmq/rocketmq4.0.0/mqnameserv.log # 有 success 输出,并且 9876 端口监听

nohup sh /opt/rocketmq/rocketmq4.0.0/bin/mqbroker -c /opt/rocketmq/rocketmq4.0.0/conf/2m-2s-async/broker-a.properties > /opt/rocketmq/rocketmq4.0.0/logs/broker-a-m.log 2>&1 &
cat  /opt/rocketmq/rocketmq4.0.0/logs/broker-a-m.log # 没有错误提示,并且 10909,10911,10912 端口监听

7. 验证服务

### 四个都做
## 设置名称服务地址
export NAMESRV_ADDR=localhost:9876
## 投递消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND_OK, msgId= ...
## 消费消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
ConsumeMessageThread_%d Receive New Messages: [MessageExt...

8. 停止服务

cd /opt/rocketmq/rocketmq4.0.0/bin
sh mqshutdown namesrv
sh mqshutdown broker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值