首页 > 中间件 > rocketmq-4.3.0 3m-noslave集群部署

rocketmq-4.3.0 3m-noslave集群部署

1 环境
三台服务器: hgc8->192.168.0.88、hgc9->192.168.0.220、hgc10->192.168.0.123
系统版本:CentOS 7.6_x64
JDK版本:java version “1.8.0_191”
操作系统用户:mq

2、下载安装RocketMQ

1
2
3
4
5
6
7
8
#下载二进制包
wget  http://mirror.bit.edu.cn/apache/rocketmq/4.6.0/rocketmq-all-4.6.0-bin-release.zip
 
#解压到 /usr/local目录下,并创建软连接
unzip rocketmq-all-4.6.0-bin-release.zip
mv rocketmq-all-4.6.0-bin-release /usr/local/
ln -sf /usr/local/rocketmq-all-4.6.0-bin-release  /usr/local/rocketmq
chown -R mq:mq /usr/local/rocketmq-all-4.6.0-bin-release

rockermq这样就安装好了,把/usr/local/rocketmq/bin加到mq用户的PATH路径里,三台机器都需要做。

3、修改配置文件
几台机器都需要做
1)建目录
用mq用户,或root建完权限改成mq

1
2
mkdir -p  /hgcdata1/rocketmq/logs
mkdir -p  /hgcdata1/rocketmq/data/{commitlog,consumerqueue,index}

2)修改配置文件中的日志路径设定

1
2
3
4
cd /usr/local/rocketmq/conf
sed -i "s/\${user.home}/\/hgcdata1\/rocketmq/g"  logback_broker.xml
sed -i "s/\${user.home}/\/hgcdata1\/rocketmq/g"  logback_namesrv.xml
sed -i "s/\${user.home}/\/hgcdata1\/rocketmq/g"  logback_tools.xml

3)修改配置文件
/usr/local/rocketmq/conf/2m-noslave下有简单的模板
hgc8配置文件broker-a.properties内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[mq@hgc8 usr]$ cat /usr/local/rocketmq/conf/broker-a.properties
brokerclusterName=DefaultCluster
brokerName=broke-a
brokerId=0
namesrvAddr=192.168.0.88:9876;192.168.0.220:9876;192.168.0.123:9876
deletewhen=04
fiLeReservedTime=48
brokerrole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
 
#存储路径
storePathRootDir=/hgcdata1/rocketmq/data
# commitLog存储路径
storePathCommitLog=/hgcdata1/rocketmq/data/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/hgcdata1/rocketmq/data/consumerqueue
#消息索引存储路径
storepathindex=/hgcdata1/rocketmq/data/index

hgc9和hgc10结点把brokerNamer分别改成broke-a和broke-c就行了

4、启动

1
2
3
4
5
[mq@hgc8 ~]$ which startmq.sh
/usr/local/rocketmq/bin/startmq.sh
[mq@hgc8 ~]$ cat /usr/local/rocketmq/bin/startmq.sh
nohup /usr/local/rocketmq/bin/mqnamesrv &
nohup /usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/broker-a.properties &

执行startmq.sh就启动了,三个结点都需要执行。

5、停集群

1
2
3
4
5
6
[mq@hgc8 ~]$ which stopmq.sh
/usr/local/rocketmq/bin/stopmq.sh
[mq@hgc8 ~]$
[mq@hgc8 ~]$ cat /usr/local/rocketmq/bin/stopmq.sh
mqshutdown namesrv
mqshutdown broker

执行stopmq.sh就停了,三个结点都需要执行

6、验证

1
2
3
4
5
[mq@hgc8 ~]$ mqadmin clusterList -n 192.168.0.88:9876
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
DefaultCluster    broke-a                 0     192.168.0.88:10911     V4_6_0                   0.00(0,0ms)         0.00(0,0ms)          0 438748.73 0.0002
DefaultCluster    broke-b                 0     192.168.0.220:10911    V4_6_0                   0.00(0,0ms)         0.00(0,0ms)          0 438748.73 0.0002
DefaultCluster    broke-c                 0     192.168.0.123:10911    V4_6_0                   0.00(0,0ms)         0.00(0,0ms)          0 438748.73 0.0002

7、部分配置参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
brokerClusterName=DefaultCluster
Cluster名字,如果机器数比较多,可以分成多个Cluster。
 
brokerName=broker-a
Broker 的名称, Master 和Slave 通过使用相同的Broker 名称来表明相互关系,以说明某个Slave 是哪个Master 的Slave 。
 
brokerId=0
一个Master Broker可以有多个Slave, 0 表示Master ,大于0 表示不同Slave的ID 。
 
deleteWhen=04
与fileReservedTim巳参数呼应,表明在几点做消息删除动作,默认值04 表示凌晨4 点。
 
fileReservedTime=48
在磁盘上保存消息的时长,单位是小时,自动删除超时的消息。
 
brokerRole=SYNC_MASTER
broker Role 有3 种:SYNC_MASTER 、ASYNC_MASTER、SLAVE 。
关键词SYNC和ASYNC表示Master和Slave之间同步消息的机制,同步或异步。
 
flushDiskType=ASYNC_FLUSH
flushDiskType 表示刷盘策略,分为SYNC_FLUSH 和ASYNC_FLUSH 两种,分别代表同步刷盘和异步刷盘。
同步刷盘情况下,消息真正写人磁盘后再返回成功状态;异步刷盘情况下,消息写人page_cache 后就返回成功状态。
 
listenPort=11011
Broker 监听的端口号,如果一台机器上启动了多个Broker , 则要设置不同的端口号,避免冲突。

这些配置参数,在Broker 启动的时候生效,如果启动后有更改,要重启Broker 。
如果Broker自动探测获得的ip地址可能不符合要求,通过brokerIP1=xx.xx.xx.xx这样的配置参数,可以设置Broker机器对外暴露的ip 地址。

分类: 中间件 标签: , , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.