Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

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的测试结果:

image

 

 

  ====================================================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环境的测试结果:

image

 

可以看到Azure DSv6相比dsv5

  • send TPS提升11.8%
  • average RT减少10.6%
  • MAX RT降低10.2%

 

posted on 2026-04-30 16:44  Lei Zhang的博客  阅读(2)  评论(0)    收藏  举报