RocketMQ源码阅读(五)-Linux环境搭建RocketMQ双Master模式

前面几片文章介绍了RocketMQ底层的文件存储技术, 后续的文章会分析RocketMQ的消息发送和处理. 本文先介绍一下RocketMQ的部署. RocketMQ的集群部署方式有多种, 其中包括单个Master, 多个Master, 多Master多Slave模式(异步复制)以及多Master多Slave模式(同步双写). 本文以多Master集群模式为例搭建一个双机Master的RocketMQ集群环境.

双机Master服务器环境

序号    ip          角色           模式
(1)   192.168.1.24    nameServer1,brokerServer1    Master1
(2)   192.168.1.150   nameServer1,brokerServer1    Master2

操作系统: CentOS-7-x86_64-Minimal-1708
关闭防火墙
双方telnet一下, 保证网络互通.
JDK: openjdk-1.8

Clone & Build

> git clone -b develop https://github.com/apache/rocketmq.git
> cd rocketmq
> mvn -Prelease-all -DskipTests clean install -U
> cd distribution/target/apache-rocketmq

作者安装时的版本为4.2.0-SNAPSHOT

Start Name Server

> nohup sh bin/mqnamesrv &
> tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...

集群部署时, namer server 也建议部署多个, 按照官网的介绍namer server之间不存在任何通信, 只要有一个namer server正常工作, namer server的功能就可以保持正常.

准备RocketMQ的配置文件

在机器192.168.1.24上进入apache-rocketmq的HOME目录, 修改配置文件.

>/usr/install/apache-rocketmq/      //apache-rocketmq的HOME目录
>vi conf/2m-noslave/broker-a.properties

文件内容如下:

#集群名称
brokerClusterName=DefaultCluster
#broker名称
brokerName=broker-a
#0代表master, > 0 代表slave, 本例中没有使用slave
brokerId=0
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#name server地址
namesrvAddr=192.168.1.150:9876;192.168.1.24:9876

注意此处brokerName要对应, 在192.168.1.24机器上使用的是broker-a, 配置文件为broker-a.properties, 相应的在192.168.1.150机器上使用的是broker-b, 配置文件为broker-b.properties.

启动

先启动两台机器的NameServer,再启动两台机器的Borker.
关闭的时候顺序相反.

>nohup sh bin/mqbroker -c conf/2m-noslave/broker-a.properties &
>tail -f ~/logs/rocketmqlogs/broker.log

192.168.1.150机器使用broker-b.properties.

启动完成后, 利用admin tool来检验.

>sh bin/mqadmin clusterlist -n 192.168.1.150:9876
image.png

你可能感兴趣的:(RocketMQ源码阅读(五)-Linux环境搭建RocketMQ双Master模式)