rocketmq集群安装配置:双主双从同步模式集群

1、机器和角色
192.168.11.176 broker-master-a broker-slave-b
192.168.11.180 broker-master-b broker-slave-a
192.168.11.182 nameServer console

2、解压 rocketmq 包,创建目录

三个节点操作

yum install java-1.8.0-openjdk*.x86_64

mkdir /data/packages -p
cd /data/packages
上传包

mkdir /data/usr
unzip rocketmq-all-4.5.0-bin-release.zip -d /data/usr
cd /data/usr
ln -s rocketmq-all-4.5.0-bin-release rocketmq

创建目录
服务器 192.168.11.176
mkdir -p /data/usr/rocketmq_data/{store-a,commitlog-a,consumequeue-a,store-b-s,commitlog-b-s,consumequeue-b-s}
mkdir /data/usr/rocketmq_data/logs

服务器 192.168.11.180
mkdir -p /data/usr/rocketmq_data/{store-b,commitlog-b,consumequeue-b,store-a-s,commitlog-a-s,consumequeue-a-s}
mkdir /data/usr/rocketmq_data/logs

服务器 192.168.11.182
mkdir -p /data/usr/rocketmq_data/logs


3、修改配置文件

3.1、节点 192.168.11.176
cd rocketmq/conf/2m-2s-async

vi broker-a.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-a
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.11.182: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=/data/usr/rocketmq_data/store-a
#commitLog 存储路径
storePathCommitLog=/data/usr/rocketmq_data/commitlog-a
#消费队列存储路径存储路径
storePathConsumeQueue=/data/usr/rocketmq_data/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

vi broker-b-s.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-b
#0 表示 Master, >0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.11.182:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=ture
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=ture
#Broker 对外服务的监听端口
listenPort=10950
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/usr/rocketmq_data/store-b-s
#commitLog 存储路径
storePathCommitLog=/data/usr/rocketmq_data/commitlog-b-s
#消费队列存储路径存储路径
storePathConsumeQueue=/data/usr/rocketmq_data/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

3.2、节点 192.168.11.180
cd rocketmq/conf/2m-2s-async

vi broker-b.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-b
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=1192.168.11.182: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=/data/usr/rocketmq_data/store-b
#commitLog 存储路径
storePathCommitLog=/data/usr/rocketmq_data/commitlog-b
#消费队列存储路径存储路径
storePathConsumeQueue=/data/usr/rocketmq_data/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

vi broker-a-s.properties
#集群名
brokerClusterName=Data-Cluster
#broker名字
brokerName=broker-a
#0 表示 Master, >0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.11.182:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=3
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10950
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
#fileReservedTime=3600
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#文件磁盘最大利用率
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/data/usr/rocketmq_data/store-a-s
#commitLog 存储路径
storePathCommitLog=/data/usr/rocketmq_data/commitlog-a-s
#消费队列存储路径存储路径
storePathConsumeQueue=/data/usr/rocketmq_data/consumequeue-a-s
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH


3.3、三节点配置
cd /data/usr/rocketmq/bin
vi runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

vi runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m"

4、启动服务

4.1、启动 节点 192.168.11.176 broker-master-a 和 broker-slave-b
nohup /data/usr/rocketmq/bin/mqbroker -c /data/usr/rocketmq/conf/2m-2s-async/broker-a.properties > /data/usr/rocketmq_data/logs/mqbroker-a.log 2>&1 &

nohup /data/usr/rocketmq/bin/mqbroker -c /data/usr/rocketmq/conf/2m-2s-async/broker-b-s.properties > /data/usr/rocketmq_data/logs/mqbroker-b-s.log 2>&1 &

4.2、启动 节点 192.168.11.180 broker-master-b 和 broker-slave-a
nohup /data/usr/rocketmq/bin/mqbroker -c /data/usr/rocketmq/conf/2m-2s-async/broker-b.properties > /data/usr/rocketmq_data/logs/mqbroker-b.log 2>&1 &

nohup /data/usr/rocketmq/bin/mqbroker -c /data/usr/rocketmq/conf/2m-2s-async/broker-a-s.properties > /data/usr/rocketmq_data/logs/mqbroker-a-s.log 2>&1 &

4.3、启动 节点 192.168.11.182 nameServer
nohup /data/usr/rocketmq/bin/mqnamesrv > /data/usr/rocketmq_data/logs/mqnamesrv.log 2>&1 &

4.5、检查集群状态
查看集群状态报错
./mqadmin clusterlist -n 192.168.11.182:9876
Caused by: org.apache.rocketmq.acl.common.AclException: [10015:signature-fai

参考:https://blog.csdn.net/l18637220680/article/details/95379498

vi tools.sh
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64/jre/lib/ext"

./mqadmin clusterlist -n 192.168.11.182:9876
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
#Cluster Name #Broker Name #BID #Addr #Version #InTPS(LOAD) #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
Data-Cluster broker-a 0 192.168.11.176:10911 V4_5_0 0.00(0,0ms) 0.00(0,0ms) 0 441994.35 0.0010
Data-Cluster broker-a 1 192.168.11.180:10950 V4_5_0 0.00(0,0ms) 0.00(0,0ms) 0 441994.35 0.0010
Data-Cluster broker-b 0 192.168.11.180:10911 V4_5_0 0.00(0,0ms) 0.00(0,0ms) 0 441994.35 0.0010
Data-Cluster broker-b 1 192.168.11.176:10950 V4_5_0 0.00(0,0ms) 0.00(0,0ms) 0 441994.35 0.0010


4.6、启动 节点 192.168.11.182 console 控制台
# cp /data/packages/rocketmq-console-ng-1.0.0.jar /data/usr/rocketmq
# cd /data/usr/rocketmq
# nohup java -jar rocketmq-console-ng-1.0.0.jar --server.port=12581 --rocketmq.config.namesrvAddr=192.168.11.182:9876 >/dev/null 2>&1 &

配置nginx代理控制台服务
# vi /etc/nginx/nginx.conf
location /rocketmq {
proxy_pass http://192.168.11.182:12581;
proxy_set_header Host $host;
proxy_set_header Referer $http_referer;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $http_x_real_ip;
proxy_read_timeout 300s;
client_max_body_size 1024m;
}

# nginx -s reload

浏览器访问控制台 http://192.168.11.182/rocketmq

 

参考:
https://blog.csdn.net/momo898821/article/details/105386903

包地址:
https://archive.apache.org/dist/rocketmq/4.5.0/rocketmq-all-4.5.0-bin-release.zip

posted @ 2020-06-11 17:33  断臂人123  阅读(656)  评论(0编辑  收藏  举报