上次写了单机版本地搭建,即一个namesrv,一个broker,现在试试搭建broker 2m2s(两主两从),另外再搭建一个mq监控平台mqconsole.

namesrv本地只能搭建一台,否则会报地址已使用错误,不过你如果用docker等容器部署,是可以搭多台的.

实际上mq的每台namesrv都是相互独立的,之间没有数据通信.生产环境建议至少搭2台,否则就有单点问题

在开始前请确保本地的运行环境已完备,请参考上一篇的单机版搭建:

 

1.启动namesrv:

打开terminal输入sh mqnamesrv,启动namesrv,本文只启一个,因为每台namesrv都是相互独立的,所以namesrv集群无非就是在多台虚拟机启动多台namesrv.

2.两主两从启动broker

   找到mq安装文件目录,在conf文件夹下找到2m-2s-async文件夹,里面有四份properties文件,分别修改里面的内容,

指定不同的端口号、角色(主或从)、文件存储路径、日志文件路径等,下面列出一份,其他的3分按葫芦画瓢:

===============================

#集群名,默认为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都启动好了,

你可以在你指定的文件路径找到日志文件,数据文件,索引文件等

docker rocketmq accessKey secretKey 配置 rocketmq docker集群_端口号

 

 

 

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也搭建完成,希望对大家有所帮助.