Linux (12) 安装与配置RocketMQ
《Windows Azure Platform 系列文章目录》
1.部署的总体架构
|
虚拟机名称 |
角色 |
配置 |
OS |
公网IP |
内网IP |
数据盘 |
数据盘iops |
数据盘吞吐量MBps |
同步模式 |
|
nameserver01 |
name server |
d4s_v5 (4c/16G) |
centos 7.9 |
略 |
10.110.0.4 |
100 GB |
3000 |
125 |
|
|
nameserver02 |
name server |
d4s_v5 (4c/16G) |
centos 7.9 |
略 |
10.110.0.5 |
100 GB |
3000 |
125 |
|
|
broker-master01 |
broker01 |
d4s_v5 (4c/16G) |
centos 7.9 |
略 |
10.110.0.8 |
100 GB |
16667 |
496 |
brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH |
|
broker-master02 |
broker02 |
d4s_v5 (4c/16G) |
centos 7.9 |
略 |
10.110.0.12 |
100 GB |
16667 |
496 |
brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH |
2.部署name server
(1)首先下载jdk 1.8,步骤略
(2)解压缩jdk
mkdir -p /usr/local/java tar -zxvf jdk-8u481-linux-x64.tar.gz -C /usr/local/java cd /usr/local/java/jdk1.8.0_481/
(3)jdk加入到环境变量
vi ~/.bashrc export JAVA_HOME=/usr/local/java/jdk1.8.0_481 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
(4)配置环境变量生效
source ~/.bash
(5)查看java配置是否生效
java -version
(6)下载RocketMQ
wget https://dist.apache.org/repos/dist/release/rocketmq/4.9.7/rocketmq-all-4.9.7-bin-release.zip
解压缩rocketmq步骤略
(7)修改name server的配置文件,路径在:/datadisk/rocketmq/conf/nameserver.conf
brokerClusterName=RocketMQCluster brokerName=broker-a brokerId=0 brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH
(8)启动name server
nohup sh /datadisk/rocketmq/bin/mqnamesrv -c /datadisk/rocketmq/conf/nameserver.conf &
(9)查看name server启动日志
tail -f ~/logs/rocketmqlogs/namesrv.log
3.部署master01和master02
(1)安装jdk和解压缩rocketmq,请参考上面的步骤
(2)创建日志目录
mkdir -p /datadisk/rocketmq/store mkdir -p /datadisk/rocketmq/store/commitlog
(3)修改broker配置文件
vi /datadisk/rocketmq/conf/broker.conf
我们设置master01的配置文件,修改为以下内容,
注意因为高可用的原因,这里:brokerRole=SYNC_MASTER
brokerClusterName=RocketMQCluster brokerName=broker-a brokerId=0 brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH namesrvAddr=10.110.0.4:9876;10.110.0.5:9876 storePathRootDir=/datadisk/rocketmq/store storePathCommitLog=/datadisk/rocketmq/store/commitlog
如果是设置master02的配置文件,修改为以下内容
brokerClusterName=RocketMQCluster brokerName=broker-b brokerId=0 brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH namesrvAddr=10.110.0.4:9876;10.110.0.5:9876 storePathRootDir=/datadisk/rocketmq/store storePathCommitLog=/datadisk/rocketmq/store/commitlog
(4)启动master01和master02
nohup sh /datadisk/rocketmq/bin/mqbroker -c /datadisk/rocketmq/conf/broker.conf &
(5)查看日志:
tail -f ~/logs/rocketmqlogs/broker.log
4.部署slave01和slave02
(1)安装jdk和解压缩rocketmq,请参考上面的步骤
(2)创建日志目录
mkdir -p /datadisk/rocketmq/store
mkdir -p /datadisk/rocketmq/store/commitlog
(3)修改slave配置文件
vi /datadisk/rocketmq/conf/broker.conf
我们设置slave01的配置文件,修改为以下内容,
brokerClusterName=RocketMQCluster brokerName=broker-a brokerId=1 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH namesrvAddr=10.110.0.4:9876;10.110.0.5:9876 storePathRootDir=/datadisk/rocketmq/store storePathCommitLog=/datadisk/rocketmq/store/commitlog
如果是设置slave02的配置文件,修改为以下内容
brokerClusterName=RocketMQCluster brokerName=broker-b brokerId=1 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH namesrvAddr=10.110.0.4:9876;10.110.0.5:9876 storePathRootDir=/datadisk/rocketmq/store storePathCommitLog=/datadisk/rocketmq/store/commitlog
(4)启动slave01和slave02
nohup sh /datadisk/rocketmq/bin/mqbroker -c /datadisk/rocketmq/conf/broker.conf &
(5)查看日志:
tail -f ~/logs/rocketmqlogs/broker.log
5.我们创建1台测试client,创建步骤略
(1)安装jdk,并安装rocketmq
(2)测试rocketmq性能压测
sh runclass.sh org.apache.rocketmq.example.benchmark.Producer \ -n 10.110.0.4:9876;10.110.0.5:9876 \ -t BenchTopic_1K -s 1024 -w 64 -d 300
参数含义:
- 模拟生产者的压测工具
- -n,指定Name server地址
- -t,设置topic名称
- -s,设置消息大小,这里为1KB
- -w,并发线程数,这里启动64个线程
- -d,运行时间为300秒
v5的测试结果:

====================================================DSv6===================================================================
如果我们模拟的环境是dsv6的话,测试环境如下:
|
虚拟机名称 |
角色 |
配置 |
OS |
公网IP |
内网IP |
数据盘 |
数据盘iops |
数据盘吞吐量MBps |
同步模式 |
|
v6nameserver01 |
name server |
d4s_v6 (4c/16G) |
Rocky 9.7 |
略 |
10.110.1.4 |
100 GB |
3000 |
125 |
|
|
v6nameserver02 |
name server |
d4s_v6 (4c/16G) |
Rocky 9.7 |
略 |
10.110.1.10 |
100 GB |
3000 |
125 |
|
|
v6broker-master01
|
broker01 |
d4s_v6 (4c/16G) |
Rocky 9.7 |
略 |
10.110.1.5 |
100 GB |
16667 |
496 |
brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH |
|
v5broker-master02 |
broker02 |
d4s_v6 (4c/16G) |
Rocky 9.7 |
略 |
10.110.1.6 |
100 GB |
16667 |
496 |
brokerRole=SYNC_MASTER flushDiskType=ASYNC_FLUSH |
v6的客户机,发送压力:
|
虚拟机名称 |
角色 |
配置 |
OS |
公网IP |
内网IP |
数据盘 |
数据盘iops |
数据盘吞吐量MBps |
|
v6client |
客户机,发送消息 |
d4s_v6 (4c/16G) |
Rocky 9.7 |
略 |
10.110.1.9 |
100 GB |
3000 |
125 |
v6环境的测试结果:

可以看到Azure DSv6相比dsv5
- send TPS提升11.8%
- average RT减少10.6%
- MAX RT降低10.2%

浙公网安备 33010602011771号