RocketMQ-環境部署-2主2從部署-同步雙寫-非同步刷盤-詳細步驟圖解

WangYongJi丶發表於2020-12-09

RocketMQ學習目錄


1.環境準備(如圖)

  • 2.伺服器一共四臺
    192.168.244.138 ;192.168.244.139 ;192.168.244.141 ;192.168.244.142
  • 3.如圖調整 xshell,配置同時控制四臺伺服器
    在這裡插入圖片描述在這裡插入圖片描述
  • 4.配置hosts
    在這裡插入圖片描述

2.修改資料儲存目錄(如圖)

	#1.上傳rocketmq-4.7.1.tar.gz 並解壓到 /opt/ 下
	$ cd /opt/ && tar -zxvf rocketmq-4.7.1.tar.gz && mv rocketmq-4.7.1 rocketmq && rm -rf /opt/rocketmq-4.7.1.tar.gz

	#2.建立資料儲存目錄
	$ cd /opt/rocketmq && mkdir logs store store/commitlog store/consumequeue store/index

	#3.替換日誌儲存位置
	$ cd /opt/rocketmq/conf && sed -i 's#${user.home}#/opt/rocketmq#g' *.xml
  • 圖解
    在這裡插入圖片描述
    在這裡插入圖片描述

3.修改啟動引數(如圖)

	#修改 runbroker 和 runserver 的 JVM啟動引數(因為虛擬機器記憶體不足)
	#找到 JAVA_OPT="${JAVA_OPT} -server 把後面三個引數改成 1 1 1
	$ vi /opt/rocketmq/bin/runbroker.sh
	$ vi /opt/rocketmq/bin/runserver.sh

/opt/rocketmq/bin/runbroker.sh在這裡插入圖片描述

/opt/rocketmq/bin/runserver.sh在這裡插入圖片描述

4.修改配置檔案(如圖)

4.1.統一配置

#這一步,四臺伺服器一起操作
#先刪除檔案內的全部內容,然後複製下面的內容到裡面,在下一步的 4.2 中再逐個修改
$ cd /opt/rocketmq/conf/2m-2s-async
$ vi broker-a.properties
$ vi broker-b.properties
$ vi broker-a-s.properties
$ vi broker-b-s.properties
#所屬叢集
brokerClusterName=rocketmq-cluster-2m-2s
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmqnameserver3:9876;rocketmq-nameserver4:9876
#Broker名,不同Master名字不同,Slave與Master通過brokerName來配對
brokerName=broker-a
#當前節點IP
brokerIP1=broker-a
#ID,0表示Master,大於0表示Slave
brokerId=0
#Broker角色(SLAVE 從節點)(ASYNC_MASTER 非同步複製Master)(SYNC_MASTER 同步雙寫Master)
brokerRole=SYNC_MASTER
#刷盤方式,ASYNC_FLUSH 非同步刷盤,SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH

#儲存路徑
storePathRootDir=/opt/rocketmq/store
#commitLog 儲存路徑
storePathCommitLog=/opt/rocketmq/store/commitlog
#消費佇列儲存路徑儲存路徑
storePathConsumeQueue=/opt/rocketmq/store/consumequeue
#訊息索引儲存路徑
storePathIndex=/opt/rocketmq/store/index
#checkpoint 檔案儲存路徑
storeCheckpoint=/opt/rocketmq/store/checkpoint
#abort 檔案儲存路徑
abortFile=/opt/rocketmq/store/abort

#Broker對外服務的監聽埠
listenPort=10911
#在傳送訊息時,自動建立伺服器不存在的 topic,預設建立的佇列數
defaultTopicQueueNums=4
#是否允許Broker自動建立Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許Broker自動建立訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true

#刪除檔案時間點,預設凌晨 4 點
deleteWhen=04
#檔案保留時間,單位小時,預設48
fileReservedTime=120
#commitLog 每個檔案的大小預設1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個檔案預設存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理檔案磁碟空間
diskMaxUsedSpaceRatio=88

#限制的訊息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#checkTransactionMessageEnable=false
#發訊息執行緒池數量
#sendMessageThreadPoolNums=128
#拉訊息執行緒池數量
#pullMessageThreadPoolNums=128

在這裡插入圖片描述

4.2.四臺一起修改

$ vi broker-a.properties
brokerName=broker-a
brokerIP1=broker-a
brokerId=0
brokerRole=SYNC_MASTER
在這裡插入圖片描述

#修改 broker-b.properties
$ vi broker-b.properties
brokerName=broker-b
brokerIP1=broker-b
brokerId=0
brokerRole=SYNC_MASTER在這裡插入圖片描述

#修改 broker-a-s.properties
$ vi broker-a-s.properties
brokerName=broker-a
brokerIP1=broker-a-s
brokerId=1
brokerRole=SLAVE
在這裡插入圖片描述

#修改 broker-b-s.properties
$ vi broker-b-s.properties
brokerName=broker-b
brokerIP1=broker-b-s
brokerId=1
brokerRole=SLAVE
在這裡插入圖片描述

5.啟動服務(如圖)

  • 啟動四臺 NameServer
    $ nohup sh /opt/rocketmq/bin/mqnamesrv &
    $ tail -f -n 500 /opt/rocketmq/logs/rocketmqlogs/namesrv.log
    $ jps #出現NamesrvStartup,既是啟動成功在這裡插入圖片描述
  • 在 broker-a伺服器上,啟動 broker-a.properties
    $ nohup sh /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/2m-2s-async/broker-a.properties &
    $ tail -f -n 500 /opt/rocketmq/logs/rocketmqlogs/broker.log
    $ jps #出現BrokerStartup,既是啟動成功在這裡插入圖片描述
  • 在 broker-b伺服器上,啟動 broker-b.properties
    $ nohup sh /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/2m-2s-async/broker-b.properties &
    $ tail -f -n 500 /opt/rocketmq/logs/rocketmqlogs/broker.log
    $ jps #出現BrokerStartup,既是啟動成功在這裡插入圖片描述
  • 在 broker-a-s伺服器上,啟動 broker-a-s.properties
    $ nohup sh /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/2m-2s-async/broker-a-s.properties &
    $ tail -f -n 500 /opt/rocketmq/logs/rocketmqlogs/broker.log
    $ jps #出現BrokerStartup,既是啟動成功在這裡插入圖片描述
  • 在 broker-b-s伺服器上,啟動 broker-b-s.properties
    $ nohup sh /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/2m-2s-async/broker-b-s.properties &
    $ tail -f -n 500 /opt/rocketmq/logs/rocketmqlogs/broker.log
    $ jps #出現BrokerStartup,既是啟動成功在這裡插入圖片描述

6.停止服務(如圖)

  • 先停止Borke,jps確定Borke停止後,再停止NameServer
    $ sh /opt/rocketmq/bin/mqshutdown broker
    $ jps
    $ sh /opt/rocketmq/bin/mqshutdown namesrv
    在這裡插入圖片描述在這裡插入圖片描述

7.清理資料(如圖)

  • 確定服務已經全部停止,然後刪除資料目錄
    $ jps
    $ cd /opt/rocketmq && rm -rf store logs && mkdir logs store store/commitlog store/consumequeue store/index
    在這裡插入圖片描述



撒 花 ❀❀❀❀❀❀❀❀❀❀❀❀

相關文章