nohup /root/Downloads/rocket-4.7.1/bin/mqnamesrv &
1.準備兩臺虛擬機或者服務器,配置jdk,配置host文件
/etc/profile 如下:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_321 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=$PATH:${JAVA_HOME}/bin:$JRE_HOME/bin
2.上傳rockemq4.7 3.解壓
# 下載二進制安裝包 wget https://archive.apache.org/dist/rocketmq/4.7.1/rocketmq-all-4.7.1-binrelease.zip # 如果沒有安裝unzip yum install -y unzip # 解壓 unzip rocketmq-all-4.7.1-bin-release.zip
4.修改 runserver.sh 、 runbroker.sh 將內存調小:
sed -i 's/-Xms8g -Xmx8g -Xmn4g/-Xms1g -Xmx1g -Xmn512m/g' ./runbroker.sh
sed -i 's/-Xms4g -Xmx4g -Xmn2g/-Xms1g -Xmx1g -Xmn512m/g' ./runserver.sh
5.啓動兩臺機器的namesrv
nohup /root/Downloads/rocket-4.7.1/bin/mqnamesrv &
jps #查看
lsof -i:9876 #查看端口占用
6.修改配置文件2m-2s-sync下
6.1修改A機器的配置文件broker-a.propterties
brokerClusterName=rocketmq-cluster #broker名字,注意此處不同的配置文件填寫的不一樣 brokerName=broker-a #0 表示 Master,>0 表示 Slave brokerId=0 #nameServer地址,分號分割 namesrvAddr=rocketmq01:9876;rocketmq02: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=/data/rocketmq/store #commitLog 存儲路徑 storePathCommitLog=/data/rocketmq/store/commitlog #消費隊列存儲路徑存儲路徑 storePathConsumeQueue=/data/rocketmq/store/consumequeue #消息索引存儲路徑 storePathIndex=/data/rocketmq/store/index #checkpoint 文件存儲路徑 storeCheckpoint=/data/rocketmq/store/checkpoint #abort 文件存儲路徑 abortFile=/data/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=SYNC_FLUSH #checkTransactionMessageEnable=false #發消息線程池數量 #sendMessageThreadPoolNums=128 #拉消息線程池數量 #pullMessageThreadPoolNums=128
6.2 A機器的broker-b-s.propterties
brokerClusterName=rocketmq-cluster brokerName=broker-b brokerId=1 namesrvAddr=192.168.18.24:9876;192.168.18.27:9876 defaultTopicQueueNums=4 autoCreateTopicEnable=true autoCreateSubscriptionGroup=true listenPort=11011 deleteWhen=04 fileReservedTime=120 mapedFileSizeCommitLog=1073741824 mapedFileSizeConsumeQueue=300000 diskMaxUsedSpaceRatio=88 storePathRootDir=/data/rocketmq/store-s storePathCommitLog=/data/rocketmq/store-s/commitlog storePathConsumeQueue=/data/rocketmq/store-s/consumequeue storePathIndex=/data/rocketmq/store-s/index storeCheckpoint=/data/rocketmq/store-s/checkpoint abortFile=/data/rocketmq/store-s/abort maxMessageSize=65536 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH
啓動:(注意提前新建文件夾store和store-s,別的不要新建,不然你就起不來,我的就是因爲這個沒起來)
mkdir -p /data/rocketmq/store-s
mkdir -p /data/rocketmq/store
啓動A節點的主節點
nohup /root/Downloads/rocket-4.7.1/bin/mqbroker -c /root/Downloads/rocket-4.7.1/conf/2m-2s-sync/broker-a.properties &
啓動B節點的從節點
nohup /root/Downloads/rocket-4.7.1/bin/mqbroker -c /root/Downloads/rocket-4.7.1/conf/2m-2s-sync/broker-b-s.properties &
6.3 修改B機器的broker-b.propertis
brokerClusterName=rocketmq-cluster #broker名字,注意此處不同的配置文件填寫的不一樣 brokerName=broker-b #0 表示 Master,>0 表示 Slave brokerId=0 #nameServer地址,分號分割 namesrvAddr=rocketmq01:9876;rocketmq02: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=/data/rocketmq/store #commitLog 存儲路徑 storePathCommitLog=/data/rocketmq/store/commitlog #消費隊列存儲路徑存儲路徑 storePathConsumeQueue=/data/rocketmq/store/consumequeue #消息索引存儲路徑 storePathIndex=/data/rocketmq/store/index #checkpoint 文件存儲路徑 storeCheckpoint=/data/rocketmq/store/checkpoint #abort 文件存儲路徑 abortFile=/data/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=SYNC_FLUSH #checkTransactionMessageEnable=false #發消息線程池數量 #sendMessageThreadPoolNums=128 #拉消息線程池數量 #pullMessageThreadPoolNums=128
修改B機器的broker-a-s.propertis
brokerClusterName=rocketmq-cluster #broker名字,注意此處不同的配置文件填寫的不一樣 brokerName=broker-a #0 表示 Master,>0 表示 Slave brokerId=1 #nameServer地址,分號分割 namesrvAddr=rocketmq01:9876;rocketmq02:9876 #在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數 defaultTopicQueueNums=4 #是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉 autoCreateTopicEnable=true #是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉 autoCreateSubscriptionGroup=true #Broker 對外服務的監聽端口 listenPort=11011 #刪除文件時間點,默認凌晨 4點 deleteWhen=04 #文件保留時間,默認 48 小時 fileReservedTime=120 #commitLog每個文件的大小默認1G mapedFileSizeCommitLog=1073741824 #ConsumeQueue每個文件默認存30W條,根據業務情況調整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #檢測物理文件磁盤空間 diskMaxUsedSpaceRatio=88 #存儲路徑 storePathRootDir=/data/rocketmq/store-s #commitLog 存儲路徑 storePathCommitLog=/data/rocketmq/store-s/commitlog #消費隊列存儲路徑存儲路徑 storePathConsumeQueue=/data/rocketmq/store-s/consumequeue #消息索引存儲路徑 storePathIndex=/data/rocketmq/store-s/index #checkpoint 文件存儲路徑 storeCheckpoint=/data/rocketmq/store-s/checkpoint #abort 文件存儲路徑 abortFile=/data/rocketmq/store-s/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
啓動
啓動192.168.5.131 的broker b nohup /root/Downloads/rocketmq-4.7.1/bin/mqbroker -c /root/Downloads/rocketmq-4.7.1/conf/2m-2s-sync/broker-b.properties & 啓動192.168.5.130 的broker a-s nohup /root/Downloads/rocketmq-4.7.1/bin/mqbroker -c /root/Downloads/rocketmq-4.7.1/conf/2m-2s-sync/broker-a-s.properties &
7.驗證查看
jps lsof -i:9876
/root/Downloads/rocketmq-4.7.1/bin/mqadmin clusterlist -n 192.168.5.130:9876;192.168.5.131:9876
一定提前放開防火牆
防火牆放開
sudo firewall-cmd --zone=public --add-port=9876/tcp --permanent sudo firewall-cmd --zone=public --add-port=10911/tcp --permanent sudo firewall-cmd --zone=public --add-port=11011/tcp --permanent
sudo firewall-cmd --reload
# 關閉
/root/Downloads/rocketmq-4.7.1/bin/mqshutdown broker
/root/Downloads/rocketmq-4.7.1/bin/mqshutdown namesrv