RocketMQ有三种部署方式:
- 2m-2s-async。多主多从异步复制
- 2m-2s-sync。多主多从同步复制
- 2m-noslave。多主无从
保证主从分布在不同的节点上
节点 | 主服务 | 从服务 |
---|---|---|
node1 | broker-a | broker-b-s |
node2 | broker-b | broker-a-s |
部署前准备
RocketMQ二进制安装包
http://rocketmq.apache.org/dowloading/releases/
安装RocketMQ
解压
拷贝至两台机器,解压下载的安装包
修改配置文件
第一台机器修改:
rocketmq-all-4.8.0-bin-release/conf/2m-2s-async目录下的broker-a.properties、broker-b-s.properties
第二台机器修改:
rocketmq-all-4.8.0-bin-release/conf/2m-2s-async目录下的broker-b.properties、broker-a-s.properties
在两台机器上创建/home/rocketmq/data
、/home/rocketmq/logs
目录
配置环境变量
vi ~/.bashrc
添加rocketmq环境变量
export ROCKETMQ_HOME=/home/rocketmq/rocketmq-all-4.8.0-bin-release
export PATH=$PATH:$ROCKETMQ_HOME/bin
source ~/.bashrc
启动namesrv
确保安装jdk1.8的环境,并配置PATH与JAVA_HOME
两台机器都执行:
进入bin目录:
nohup sh mqnamesrv > /home/rocketmq/logs/mqnamesrv.log 2>&1 &
启动broker
进入bin目录
修改runbroker.sh,找到下面两行JVM参数,可以调大或调小内存
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=2g"
修改runserver.sh,找到下面一行JVM参数,可以调大或调小内存
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=160m"
第一台机器启动broker-a
:
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.8.0-bin-release/conf/2m-2s-async/broker-a.properties > /home/rocketmq/logs/mqbroker-a.log 2>&1 &
第二台机器启动broker-a-s
:
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.8.0-bin-release/conf/2m-2s-async/broker-a-s.properties > /home/rocketmq/logs/mqbroker-a-s.log 2>&1 &
第二台机器启动broker-b
:
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.8.0-bin-release/conf/2m-2s-async/broker-b.properties > /home/rocketmq/logs/mqbroker-b.log 2>&1 &
第一台机器启动broker-b-s
:
nohup sh mqbroker -c /home/rocketmq/rocketmq-all-4.8.0-bin-release/conf/2m-2s-async/broker-b-s.properties > /home/rocketmq/logs/mqbroker-b-s.log 2>&1 &
关闭命令
sh mqshutdown namesrv
sh mqshutdown broker