1. 程式人生 > >RocketMQ 2主2從 集群搭建

RocketMQ 2主2從 集群搭建

tst 根據 syn 步驟 class 監聽 queue 網卡 lib

安裝環境

  jdk1.7

  alibaba-rocketmq-3.2.6.tar.gz

  VM虛擬機redhat6.5-x64:192.168.1.201 192.168.1.202 192.168.1.203 192.168.1.204

  Xshell4

部署方案

IP

主機名

用途

Broker角色

192.168.1.201

broker-a

NameServer,Broker

Master

192.168.1.202

broker-b

NameServer, Broker

Master

192.168.1.203

broker-a-s

NameServer, Broker

Slave

192.168.1.204

broker-b-s

NameServer, Broker

Slave

安裝步驟:【兩臺機器同樣操作 以201為例】

步驟一:解壓安裝文件alibaba-rocketmq-3.2.6.tar.gz

[root@201 rocketmq]# tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local
[root@201 rocketmq]# mv alibaba-rocketmq rocketmq

步驟二:修改配置

  配置一:創建存儲路徑 用於存儲隊列 索引 提交日誌等信息

[root@201 rocketmq]# mkdir -p /usr/local/rocketmq/store
[root@201 rocketmq]# mkdir -p /usr/local/rocketmq/store/commitlog
[root@201 rocketmq]# mkdir -p /usr/local/rocketmq/store/consumequeue
[root@201 rocketmq]# mkdir -p /usr/local/rocketmq/store/index

配置二:Hosts添加信息

192.168.1.201 rocketmq-nameserver1
192.168.1.202 rocketmq-nameserver2
192.168.1.203 rocketmq-nameserver3 192.168.1.204 rocketmq-nameserver4 192.168.1.201 rocketmq-master1 192.168.1.202 rocketmq-master2 192.168.1.203 rocketmq-slave1 192.168.1.204 rocketmq-slave2

重啟網卡:service network restart

相互ping一下,在201機器上ping 192.168.1.202 ping rocketmq-nameserver2 ping rocketmq-master2 。 202 203 204機器上也一樣。

配置三:RocketMQ配置文件:

同步雙寫,配置目錄:2m-2s-async

異步刷盤,配置目錄:2m-2s-sync

#201
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-a.properties
#202
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-b.properties
#203
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-a-s.properties
#204
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-b-s.properties
#所屬集群名字
brokerClusterName=rocketmq-cluster
#broker名字  broker-a.properties填broker-a  broker-b.properties填broker-b
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876 rocketmq-nameserver2:9876 rocketmq-nameserver3:9876 rocketmq-nameserver4:9876
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
#Broker 對外服務的監聽端口
listenPort=10911
#刪除文件時間點,默認淩晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=120
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存儲路徑
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存儲路徑
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存儲路徑
abortFile=/usr/local/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER  異步復制Master
#- SYNC_MASTER  同步雙寫Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盤方式
#- ASYNC_FLUSH  異步刷盤
#- SYNC_FLUSH  同步刷盤
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量
#pullMessageThreadPoolNums=128
註意:
brokerName:
201 broker-a
202 broker-b
203 broker-a-s
204 broker-b-s
brokerId
201 202 是master 配置brokerId=0
203 204 是slave  配置brokerId=1

brokerRole
201 202是master 配置 brokerRole=SYNC_MASTER
203 204是slave配置 brokerRole=SLAVE
配置四:修改日誌配置文件
[root@201 conf]# mkdir -p /usr/local/rocketmq/logs
[root@201 conf]# cd /usr/local/rocketmq/conf && sed -i s#${user.home}#/usr/local/rocketmq#g *.xml

配置五:修改啟動腳本參數 Xms和Xmx至少是1G 否則啟動不起來 Xmn一般是前者的一半

vim /usr/local/rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

vim /usr/local/rocketmq/bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

步驟三:啟動:先啟動兩臺機器的NameServer,再啟動兩臺機器的Borker,關機的時候順序相反,先關閉兩臺機器的Broker,再關閉兩臺機器的Nameserver。在啟動 BrokerServer 之前先關閉防火墻.

啟動一:NameServer  201 202 203 204
cd /usr/local/rocketmq/bin
nohup sh mqnamesrv &
#查看進程
jps
#查看日誌
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

#啟動二:BrokerServer A 192.168.1.201 
cd /usr/local/rocketmq/bin 
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 & 
netstat -ntlp 
jps 
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log 
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log 

#啟動三:BrokerServer B 192.168.1.202 
cd /usr/local/rocketmq/bin 
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 & 
netstat -ntlp 
jps 
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log 
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

#啟動四:BrokerServer B 192.168.1.203 
cd /usr/local/rocketmq/bin 
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a-s.properties >/dev/null 2>&1 & 
netstat -ntlp 
jps 
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log 
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

#啟動五:BrokerServer B 192.168.1.204 
cd /usr/local/rocketmq/bin 
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b-s.properties >/dev/null 2>&1 & 
netstat -ntlp 
jps 
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log 
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log


RocketMQ 2主2從 集群搭建