準(zhǔn)備
- RocketMQ的zip包(本文準(zhǔn)備的版本是rocketmq-all-4.4.0-bin-release.zip)
- 通過(guò)xftp上傳到/opt/software下
部署流程
解壓
unzip rocketmq-all-4.4.0-bin-release.zip -d /opt/modules默認(rèn)文件夾名字太長(zhǎng),修改名字
mv rocketmq-all-4.4.0-bin-release rocketmq-
創(chuàng)建RocketMQ存儲(chǔ)文件的目錄
cd /opt/modules/rocketmq/
mkdir logs
mkdir store
cd store/
mkdir commitlog
mkdir consumequeue
mkdir index
文件夾說(shuō)明:- logs:存儲(chǔ)RocketMQ日志目錄
- store:存儲(chǔ)RocketMQ數(shù)據(jù)文件目錄
- commitlog:存儲(chǔ)RocketMQ消息信息
- consumequeue、index:存儲(chǔ)消息的索引數(shù)據(jù)
-
配置文件修改
conf目錄配置文件說(shuō)明:
20200524235403403.png2m-2s-async:2主2從異步
2m-2s-sync :2主2從同步
2m-noslave :2主沒(méi)有從這里我配置單節(jié)點(diǎn),可以修改2m-2s-async的配置實(shí)現(xiàn)。進(jìn)入2m-2s-async目錄,修改第1個(gè)配置文件broker-a.properties
cd 2m-2s-async/
vim broker-a.properties#所屬集群名字 brokerClusterName=rocketmq-cluster #broker名字,注意此處不同的配置文件填寫(xiě)的不一樣 brokerName=broker-a #0 表示Master, > 0 表示slave brokerId=0 #nameServer 地址,分號(hào)分割 namesrvAddr=localhost:9876 brokerIP1 = 服務(wù)器ip #在發(fā)送消息時(shí),自動(dòng)創(chuàng)建服務(wù)器不存在的Topic,默認(rèn)創(chuàng)建的隊(duì)列數(shù) defaultTopicQueueNums=4 #是否允許Broker 自動(dòng)創(chuàng)建Topic,建議線下開(kāi)啟,線上關(guān)閉 autoCreateTopicEnable=true #是否允許Broker自動(dòng)創(chuàng)建訂閱組,建議線下開(kāi)啟,線上關(guān)閉 autoCreateSubscriptionGroup=true #Broker 對(duì)外服務(wù)的監(jiān)聽(tīng)端口 listenPort=10911 #刪除文件時(shí)間點(diǎn),默認(rèn)是凌晨4點(diǎn) deleteWhen=04 #文件保留時(shí)間,默認(rèn)48小時(shí) fileReservedTime=48 #commitLog每個(gè)文件的大小默認(rèn)1G mapedFileSizeCommitLog=1073741824 #ConsumeQueue每個(gè)文件默認(rèn)存30W條,根據(jù)業(yè)務(wù)情況調(diào)整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #檢測(cè)物理文件磁盤(pán)空間 diskMaxUsedSpaceRatio=50 #存儲(chǔ)路徑 storePathRootDir=/opt/modules/rocketmq/store #commitLog存儲(chǔ)路徑 storePathCommitLog=/opt/modules/rocketmq/store/commitlog #消費(fèi)隊(duì)列存儲(chǔ)路徑 storePathConsumeQueue=/opt/modules/rocketmq/store/consumequeue #消息索引存儲(chǔ)路徑 storePathIndex=/opt/modules/rocketmq/store/index #checkpoint 文件存儲(chǔ)路徑 storeCheckpoint=/opt/modules/rocketmq/store/checkpoint #abort 文件存儲(chǔ)路徑 abortFile=/opt/modules/rocketmq/store/abort #限制的消息大小 maxMessageSize=65536 # flushCommitLogLeastPages=4 # flushConsumeQueueLeastPages=2 # flushCommitLogThoroughInterval=10000 # flushConsumeQueueThoroughInterval=60000 # Broker 的角色 # - ASYNC_MASTER 異步復(fù)制Master # - SYNC_MASTER 同步雙寫(xiě)Master # - SLAVE brokerRole=ASYNC_MASTER # 刷盤(pán)方式 # - ASYNC_FLUSH 異步刷盤(pán) # - SYNC_FLUSH 同步刷盤(pán) flushDiskType=ASYNC_FLUSH #checkTransactionMessageEnable=false #發(fā)消息線程池?cái)?shù)量 #sendMessageTreadPoolNums=128 #拉消息線程池?cái)?shù)量 #pullMessageTreadPoolNums=128 修改日志路徑
cd /opt/modules/rocketmq/conf/
sed -i 's#${user.home}#/opt/modules/rocketmq#g' *.xml
(命令說(shuō)明:sed -i在這里起一個(gè)批量替換的作用,sed -i 's#原字符串#新字符#g' 替換的文件)-
修改默認(rèn)啟動(dòng)內(nèi)存大小
cd /opt/modules/rocketmq/bin/- 修改runbroker.sh
vim runbroker.sh改前: JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" 改后: JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g" - 修改runserver.sh
vim runserver.sh改前: JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" 改后: JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
- 修改runbroker.sh
-
啟動(dòng)RocketMQ
cd /opt/modules/rocketmq/bin/- 啟動(dòng)namesrv
nohup sh mqnamesrv & - 啟動(dòng)broker
nohup sh mqbroker -c /opt/modules/rocketmq/conf/2m-2s-async/broker-a.properties autoCreateTopicEnable=true > /dev/null 2>&1 &
20200525001439706.png
- 啟動(dòng)namesrv

