rocketmq 双master模式

一、准备工作

github上下载安装包,为避免编译构建,可以直接下载二进制包rocketmq 双master模式_第1张图片

1、修改ip

参考 Linux环境快速搭建RocketMQ双Master模式给机器命名  修改文件  vi /etc/hosts,相互ping一下,检测是否配置有效

2、解压并创建软连接

解压到/usr/server目录下,并创建软连接ln -s alibaba-rocketmq rocketmq(需要到创建软连接的目录下创建)

3、修改日志配置文件
在创建的软连接文件夹rocketmq下创建一个logs目录
然后执行如下命令,进行日志文件的替换,sed是linux的替换命令。两台机器同样操作。

cd /usr/server/rocketmq/conf && sed -i 's#${user.home}#/user/server/rocketmq#g' *.xml

4、创建存放数据的文件夹data

 

rm -rf /home/cxb/rocketmq/data  
mkdir /home/cxb/rocketmq/data 
mkdir /home/cxb/rocketmq/data/commitlog 
mkdir /home/cxb/rocketmq/data/consumequeue 
mkdir /home/cxb/rocketmq/data/index

 

 

5、修改服务配置文件

将配置文件broker-a.properties和broker-b.properties拷贝到本地并按如下修改,修改后覆盖两个文件

brokerName=broker-a这行,要分别配置,如果水平扩展第三台,只需创建同样的文件夹3m-noslave,然后将下面的配置文件修改为brokerName=broker-c即可。

如果是双主双从的模式,主从关系的两台机器,brokerName要一致,通过brokerId区分开来,并采用异步复制的方式和异步刷盘策略

 

# Licensed to the Apache Software Foundation (ASF) under one or oorterName=rocketmq-cluster
brokerClusterName=rocket-dev
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=172.23.21.222:9876;172.23.21.221:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 0点
deleteWhen=00
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/cxb/rocketmq/data
#commitLog 存储路径
storePathCommitLog=/home/cxb/rocketmq/data/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/home/cxb/rocketmq/data/consumequeue
#消息索引存储路径
storePathIndex=/home/cxb/rocketmq/data/index
#checkpoint 文件存储路径
storeCheckpoint=/home/cxb/rocketmq/data/checkpoint
#abort 文件存储路径
abortFile=/home/cxb/rocketmq/data/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

 

6、最后是启动关闭命令:

先启动NameServer,再启动Borker,关闭的时候顺序相反,先关闭Broker,再关闭Nameserver。

双主双从,启动方式相同;需要先启动两个master再启动slave

 

sh mqshutdown namesrv
sh mqshutdown broker
nohup sh mqnamesrv >/home/cxb/mqnamesrv.out 2>&1 &
nohup sh mqbroker -c /usr/server/alibaba-rocketmq/conf/2m-noslave/broker-b.properties >/home/cxb/mqbroker.out  2>&1 &

 

我的环境:namesrvAddr=172.23.21.223:9876;172.23.21.221:9876;172.23.29.111:9876;172.23.29.112:9876

D:\ws_study\workspace_activemq\activity mq       生产者 调用接口发送消息localhost:8282/activity/producer/sendMsg
D:\ws_study\workspace_spring\springmvcdemo2 消费者,登录接收消息
D:\WS\workspace_rocketmq    mq管控台
网上有个war包控制台过于简陋,可以从github上下载apache/rocketmq-externals,构建一个jar包,然后通过以下命令启动

java -jar rocketmq-console-ng-1.0.0.jar --server.port=12581 --rocketmq.config.namesrvAddr=10.10.13.14:9876

启动后长这个样子rocketmq 双master模式_第2张图片

 

你可能感兴趣的:(mq)