一、雙Master RocketMq集群的搭建
1、服務器環境:
序號 | IP | 用戶名 | 角色 | 模式 |
1 | 192.168.211.128 | root | nameServer1,brokerServer1 | Master1 |
2 | 192.168.211.129 | root | nameServer2,brokerServer2 | Master1 |
2、添加hosts信息
vim /etc/hosts
IP | NAME |
192.168.211.128 | rocketmq-nameserver1 |
192.168.211.128 | rocketmq-master1 |
192.168.211.129 | rocketmq-nameserver2 |
192.168.211.129 | rocketmq-master2 |
3、上傳解壓rocketMq到服務器
上傳alibaba-rocketmq-3.2.6.tar.gz文件至/usr/local/install
解壓tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local/software
4、創建軟連接(兩台機器)
ln -s alibaba-rocketmq rocketmq
5、創建存儲路徑(兩台機器)
# mkdir /usr/local/software/rocketmq/store
# mkdir /usr/local/software/rocketmq/store/commitlog
# mkdir /usr/local/software/rocketmq/store/consumequeue
# mkdir /usr/local/software/rocketmq/store/index
6、RocketMQ配置文件(兩台機器)
# vim /usr/local/software/rocketmq/conf/2m-noslave/broker-a.properties
# vim /usr/local/software/rocketmq/conf/2m-noslave/broker-b.properties
1 將a.properties和b.properties文件中的內容全部清掉(用下面的內容替換掉) 2 #所屬集群名字 3 brokerClusterName=rocketmq-cluster 4 #broker名字,注意此處不同的配置文件填寫的不一樣 例如:在a.properties 文件中寫 broker-a 在b.properties 文件中寫 broker-b 5 brokerName=broker-a|broker-b 6 #0 表示 Master,>0 表示 Slave 7 brokerId=0 8 #nameServer地址,分號分割 9 namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876 10 #在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數 11 defaultTopicQueueNums=4 12 #是否允許 Broker 自動創建Topic,建議線下開啟,線上關閉 13 autoCreateTopicEnable=true 14 #是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉 15 autoCreateSubscriptionGroup=true 16 #Broker 對外服務的監聽端口 17 listenPort=10911 18 #刪除文件時間點,默認凌晨 4點 19 deleteWhen=04 20 #文件保留時間,默認 48 小時 21 fileReservedTime=120 22 #commitLog每個文件的大小默認1G 23 mapedFileSizeCommitLog=1073741824 24 #ConsumeQueue每個文件默認存30W條,根據業務情況調整 25 mapedFileSizeConsumeQueue=300000 26 #destroyMapedFileIntervalForcibly=120000 27 #redeleteHangedFileInterval=120000 28 #檢測物理文件磁盤空間 29 diskMaxUsedSpaceRatio=88 30 #存儲路徑 31 storePathRootDir=/usr/local/software/rocketmq/store 32 #commitLog 存儲路徑 33 storePathCommitLog=/usr/local/software/rocketmq/store/commitlog 34 #消費隊列存儲路徑存儲路徑 35 storePathConsumeQueue=/usr/local/software/rocketmq/store/consumequeue 36 #消息索引存儲路徑 37 storePathIndex=/usr/local/software/rocketmq/store/index 38 #checkpoint 文件存儲路徑 39 storeCheckpoint=/usr/local/software/rocketmq/store/checkpoint 40 #abort 文件存儲路徑 41 abortFile=/usr/local/software/rocketmq/store/abort 42 #限制的消息大小 43 maxMessageSize=65536 44 #flushCommitLogLeastPages=4 45 #flushConsumeQueueLeastPages=2 46 #flushCommitLogThoroughInterval=10000 47 #flushConsumeQueueThoroughInterval=60000 48 #Broker 的角色 49 #- ASYNC_MASTER 異步復制Master 50 #- SYNC_MASTER 同步雙寫Master 51 #- SLAVE 52 brokerRole=ASYNC_MASTER 53 #刷盤方式 54 #- ASYNC_FLUSH 異步刷盤 55 #- SYNC_FLUSH 同步刷盤 56 flushDiskType=ASYNC_FLUSH 57 #checkTransactionMessageEnable=false 58 #發消息線程池數量 59 #sendMessageThreadPoolNums=128 60 #拉消息線程池數量 61 #pullMessageThreadPoolNums=128
7、修改日志文件(兩台機器)
# mkdir -p /usr/local/software/rocketmq/logs
# cd /usr/local/software/rocketmq/conf && sed -i 's#${user.home}#/usr/local/software/rocketmq#g' *.xml
8、修改啟動腳本參數(修改啟動腳本參數兩台機器)
8.1、vim /usr/local/software/rocketmq/bin/runbroker.sh
#===========================================================================================
# JVM Configuration
#===========================================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
XX:PermSize=128m -XX:MaxPermSize=320m"
8.2、vim /usr/local/software/rocketmq/bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
XX:PermSize=128m -XX:MaxPermSize=320m"
9、啟動NameServer(特別注意:在啟動 BrokerServer 之前先關閉防火牆)
# cd /usr/local/software/rocketmq/bin
# nohup sh mqnamesrv &
10、啟動BrokerServer A【192.168.211.128】
# cd /usr/local/software/rocketmq/bin
# nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
# netstat -ntlp
# jps
# tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/broker.log
# tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/namesrv.log
11、啟動BrokerServer B 【192.168.211.129】
# cd /usr/local/software/rocketmq/bin
# nohup sh mqbroker -c /usr/local/software/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
# netstat -ntlp
# jps
# tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/broker.log
# tail -f -n 500 /usr/local/software/rocketmq/logs/rocketmqlogs/namesrv.log
12、停止服務
先停止 broker 在停止 namesrv
cd /usr/local/software/rocketmq/bin
# sh mqshutdown broker
# sh mqshutdown namesrv