上次寫了單機版本地搭建,即一個namesrv,一個broker,如今試試搭建broker 2m2s(兩主兩從),另外再搭建一個mq監控平臺mqconsole.html
namesrv本地只能搭建一臺,不然會報地址已使用錯誤,不過你若是用docker等容器部署,是能夠搭多臺的.java
實際上mq的每臺namesrv都是相互獨立的,之間沒有數據通訊.生產環境建議至少搭2臺,不然就有單點問題git
在開始前請確保本地的運行環境已完備,請參考上一篇的單機版搭建:http://www.javashuo.com/article/p-numuwkxw-hg.htmlgithub
1.啓動namesrv:spring
打開terminal輸入sh mqnamesrv,啓動namesrv,本文只啓一個,由於每臺namesrv都是相互獨立的,因此namesrv集羣無非就是在多臺虛擬機啓動多臺namesrv.docker
2.兩主兩從啓動brokerapache
找到mq安裝文件目錄,在conf文件夾下找到2m-2s-async文件夾,裏面有四份properties文件,分別修改裏面的內容,瀏覽器
指定不一樣的端口號、角色(主或從)、文件存儲路徑、日誌文件路徑等,下面列出一份,其餘的3分按葫蘆畫瓢:springboot
===============================app
#集羣名,默認爲DefaultCluster,能夠不用改
brokerClusterName=DefaultCluster
#broker名,名稱一致表示是同一個broker
brokerName=broker-a
#brokerId,0表示爲master,1,2,3.......表示爲slave
brokerId=0
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間
fileReservedTime=48
#master都爲ASYNC_MASTER,slave都爲SLAVE
brokerRole=ASYNC_MASTER
#主從間複製數據的方式,都爲ASYNC_FLUSH
flushDiskType=ASYNC_FLUSH
#端口號,啓動過程當中遇到Address already in use的話,能夠修改端口號
listenPort=11910
storePathRootDir=/Users/david/Downloads/packages/rocketmq-all-4.4.0-bin-release/logs/am/rocketmqstore
storePathCommitLog=/Users/david/Downloads/packages/rocketmq-all-4.4.0-bin-release/logs/am/rocketmqstore/commitlog
storePathConsumeQueue=/Users/david/Downloads/packages/rocketmq-all-4.4.0-bin-release/logs/am/rocketmqstore/consumequeue
storePathIndex=/Users/david/Downloads/packages/rocketmq-all-4.4.0-bin-release/logs/am/rocketmqstore/index
storeCheckpoint=/Users/david/Downloads/packages/rocketmq-all-4.4.0-bin-release/logs/am/rocketmqstore/checkpoint
abortFile=/Users/david/Downloads/packages/rocketmq-all-4.4.0-bin-release/logs/am/rocketmqstore/abort
===================================
修改好四份配置文件,開啓四個terminal執行啓動命令:sh mqbroker -n localhost:9876 -c /XXX/XXX.properties,至此,四臺broker都啓動好了,
你能夠在你指定的文件路徑找到日誌文件,數據文件,索引文件等
3.搭建mqconsole
官方已經寫好了插件,你只需down下來部署就能夠用,下載地址:https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console
下好後,修改一下配置文件,指定namesrv爲你的本地namesrv地址,該項目用springboot搭建,找到配置文件application.properties,修改
rocketmq.config.namesrvAddr=localhost:9876
其它配置保持默認便可,接下來打開 terminal,用maven打包項目爲jar包:
cd /data/rocketmq-externals/rocketmq-console/
mvn clean package -Dmaven.test.skip=true
在target文件夾下找到rocketmq-console-ng-1.0.0.jar
執行java -jar rocketmq-console-ng-1.0.0.jar
啓動成功後,在瀏覽器打開localhost:8080,能夠看到以下頁面:
在這裏你能夠看到一些mq的監控信息,如topic、cluster、producer、consumer等,很是方便.
好了,至此mqconsole也搭建完成,但願對你們有所幫助.