RocketMQ双Master集群搭建

RocketMQ 的Git地址:https://github.com/apache/rocketmq


在Apache RocketMQ官网下载源码,或者使用上面提供的github地址下载源码,并使用Apache RocketMQ官网提供的方式打包

mvn -Prelease-all -DskipTests clean install -U


构建结果


在源码文件distribution/target/apache-rocketmq的目录下,可以查看到打好的tar包


本文要实现的是双Master模式的RocketMQ集群。两台Linux虚拟机分别为192.168.0.220、192.168.0.221。

192.168.0.220     NameServer      Broker

192.168.0.221     NameServer      Broker


修改220、221上的hosts

vi /etc/hosts


service network restart   重启网络服务

确保两台机器相互之间是可以ping通的


将apache-rocketmq.tar.gz上传到220、221两台机器上。在/usr/local下,新建rocketmq目录,并将tar包解压到该目录下。

tar -zxvf apache-rocketmq.tar.gz -C /usr/local/rocketmq/


创建存储路径

cd /usr/local/rocketmq

mkdir store

mkdir ./store/commitlog

mkdir ./store/consumequeue

mkdir ./store/index


修改220、221上的RocketMQ日志配置文件

mkdir /usr/local/rocketmq/logs

cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml


RocketMQ配置文件


修改220节点上的配置文件


下图中的配置与上面/usr/local/rocketmq/store下新建的存储路径对应



ASYNC_FLUSH相对于SYNC_FLUSH来说,执行速度更快,但是在宕机的情况下,可能会出现少量的消息丢失。后者安全性更高,在宕机情况下不会出现消息丢失。



修改221节点上的配置文件,同样也是修改broker-a.properties



分别修改220、221节点上的broker-b.properties,其内容与自己所在节点上的broker-a.properties基本相同,唯一需要修改的是brokerName=broker-b


集群JVM调优

vim /usr/local/rocketmq/bin/runbroker.sh   设置Broker的JVM参数


根据虚拟Linux的实际情况,设置为:

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"


vim /usr/local/rocketmq/bin/runserver.sh   设置NameServer的JVM参数


根据虚拟Linux的实际情况,设置为:

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"


先启动NameServer,再启动Broker

在linux中nohup指令的用法

nohup program &  使进程在用户退出登录后仍旧继续执行,原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用,实现了完整的守护进程功能。


在220、221机器上执行指令,启动NameServer

cd  /usr/local/rocketmq/bin

nohup sh mqnamesrv &


查看nameserver的日志信息,确认220、221中NameServer启动成功。

cd  /usr/local/rocketmq/logs/rocketmqlogs

vi namesrv.log


启动220上的BrokerServer A

cd  /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties autoCreateTopicEnable=true  >/dev/null 2>&1 &    

启动221机器上的BrokerServerB

cd  /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties  autoCreateTopicEnable=true  >/dev/null 2>&1 & 


查看220上的Broker启动日志信息

cd  /usr/local/rocketmq/logs/rocketmqlogs

vi broker.log



查看221上的Broker启动日志信息


使用jps指令查看当前系统的Java进程




RocketMQ管控台

在github上开源的RocketMQ扩展项目地址

https://github.com/apache/rocketmq-externals



进入rocketmq-console,点击README.md查看rocketmq-console注意事项


提示信息



下载该项目并导入到Eclipse,其中rocketmq-console即控制台项目。修改application.properties中的namesrvAddr

rocketmq.config.namesrvAddr=192.168.0.220:9876;192.168.0.221:9876

在命令行中进入到磁盘中rocketmq-console对应目录,执行mvn clean package -Dmaven.test.skip=true


查看生成的jar包



启动并查看rocketmq-console

在Windows的命令行中,执行如下指令

java  -jar  rocketmq-console-ng-1.0.0.jar

访问地址  http://127.0.0.1:8080




集群



消息




你可能感兴趣的:(消息中间件)