官網(wǎng)地址:https://rocketmq.apache.org/zh/docs/4.x/deployment/01deploy
參考文檔:
https://blog.csdn.net/wangqingjia/article/details/125408142
https://blog.csdn.net/lvxiucai/article/details/104907614
配置說明
使用倆臺機子赊时,部署同步刷新集群钧忽,slaver和master錯開部署誉己,可以防止一臺服務(wù)器宕機后囤锉,集群依然可用
ip | broker |
---|---|
192.168.20.202 | broker-a |
192.168.20.202 | broker-b-s |
192.168.20.203 | broker-b |
192.168.20.203 | broker-a-s |
修改內(nèi)存
修改bin目錄下runserver.sh和runbroker.sh的內(nèi)存大小,網(wǎng)上有榔昔,就不做說明了
配置文件
在conf/2m-2s-sync文件夾中配置
在192.168.20.202中配置broker-a和broker-b-s
在192.168.20.203中配置broker-b和broker-a-s
1蜈项、broker-a
#下面是自帶的,可以不用動
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
#這個是broker啟動端口晨雳,一個機子啟動多個broker一定要配置下
listenPort=10911
namesrvAddr=192.168.20.202:9876;192.168.20.203:9876
#這個是文件位置行瑞,同一機子上啟動多個broker一定要配置
storePathRootDir=/root/rocket/store-a
storePathCommitLog=/root/rocket/store-a/commitlog
storePathConsumeQueue=/root/rocket/store-a/consumequeue
storePathIndex=/root/rocket/store-a/index
storeCheckPoint=/root/rocket/store-a/checkpoint
abortFile=/root/rocket/store-a/abort
2、broker-b-s
#下面是自帶的餐禁,可以不用動
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
#這個是broker啟動端口血久,一個機子啟動多個broker一定要配置下
listenPort=10918
namesrvAddr=192.168.20.202:9876;192.168.20.203:9876
#這個是文件位置,同一機子上啟動多個broker一定要配置
storePathRootDir=/root/rocket/store-b-s
storePathCommitLog=/root/rocket/store-b-s/commitlog
storePathConsumeQueue=/root/rocket/store-b-s/consumequeue
storePathIndex=/root/rocket/store-b-s/index
storeCheckPoint=/root/rocket/store-b-s/checkpoint
abortFile=/root/rocket/store-b-s/abort
3帮非、broker-b
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
namesrvAddr=192.168.20.202:9876;192.168.20.203:9876
storePathRootDir=/root/rocket/store-b
storePathCommitLog=/root/rocket/store-b/commitlog
storePathConsumeQueue=/root/rocket/store-b/consumequeue
storePathIndex=/root/rocket/store-b/index
storeCheckPoint=/root/rocket/store-b/checkpoint
abortFile=/root/rocket/store-b/abort
4氧吐、broker-a-s
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10918
namesrvAddr=192.168.20.202:9876;192.168.20.203:9876
storePathRootDir=/root/rocket/store-a-s
storePathCommitLog=/root/rocket/store-a-s/commitlog
storePathConsumeQueue=/root/rocket/store-a-s/consumequeue
storePathIndex=/root/rocket/store-a-s/index
storeCheckPoint=/root/rocket/store-a-s/checkpoint
abortFile=/root/rocket/store-a-s/abort
啟動
1、啟動nameserver
分別在倆臺服務(wù)器上的rocket目錄下執(zhí)行下列命令
nohup sh bin/mqnamesrv &
通過jps命令查看到NamesrvStartup即啟動成功末盔,啟動成功會占用9876端口
2筑舅、啟動broker
1、192.168.20.202啟動主服務(wù)(broker-a)
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a.properties &
2陨舱、192.168.20.203啟動主服務(wù)(broker-b)
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties &
3翠拣、192.168.20.202啟動從服務(wù)(broker-b-s)
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties &
4、192.168.20.203動從服務(wù)(broker-a-s)
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties &
通過jps命令查看到BrokerStartup即啟動成功
配置注意事項(一個服務(wù)器啟動多個broker才會出現(xiàn)問題)
1游盲、啟動主服務(wù)沒有問題误墓,啟動從服務(wù)器報rocketmq已存在錯誤
這種就是文件路徑一致導(dǎo)致的,只需要在配置文件中將以下配置文件路徑設(shè)置成不一樣即可
storePathRootDir=/root/rocket/store-a-s
storePathCommitLog=/root/rocket/store-a-s/commitlog
storePathConsumeQueue=/root/rocket/store-a-s/consumequeue
storePathIndex=/root/rocket/store-a-s/index
storeCheckPoint=/root/rocket/store-a-s/checkpoint
abortFile=/root/rocket/store-a-s/abort
2益缎、啟動從服務(wù)器報端口占用問題
將listenPort配置盡量拉開优烧,我發(fā)現(xiàn)配置listenPort后會服務(wù)會在占用listenPort端口后,自動占用另倆個端口链峭,一個是listenPort+1畦娄,一個是listenPort-2。(具體作用參考:https://blog.csdn.net/yucaifu1989/article/details/127983899)
舉一個列子弊仪,broker-a的listenPort配置10911熙卡,broker-b-s的listenPort配置10912,broker-a占用三個端口為10909励饵、10911驳癌、10912,broker-b-s占用三個端口為10910役听、10912颓鲜、10913表窘,那么倆個服務(wù)都會爭10912,就會報端口占用甜滨,服務(wù)啟動不了乐严。
所以我上面配置的時候listenPort一個配置10911,一個配置了10918衣摩,所以端口占用如下