rocketMQ集群

  上次写了单机版本地搭建,即一个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也搭建完成,但愿对你们有所帮助.