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
#下载二进制包 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
mkdir -p /hgcdata1/rocketmq/logs mkdir -p /hgcdata1/rocketmq/data/{commitlog,consumerqueue,index}
2)修改配置文件中的日志路径设定
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内容:
[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、启动
[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、停集群
[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、验证
[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、部分配置参数说明
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 地址。
近期评论