RocketMQ源码阅读(五)-Linux环境搭建RocketM
前面几片文章介绍了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