多 Master 模式
一个集群无 Slave,全是 Master,例如 2 个 Master 或者 3 个 Master
优点:配置简单,单个Master 宕机或重启维护对应用无影响,在磁盘配置为
RAID10 时,即使机器宕机不可恢复情况下,由与 RAID10
磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢)。性
能最高。
缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅
,消息实时性会受到受到影响。
先启动 NameServer
在机器 A,启动第一个 Master
在机器 B,启动第二个 Master
1、准备服务器
10.1.1.6、10.1.1.7
2、两台机子分别执行上传下载及解压
下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip
1. 上传 rocketmq-all-4.2.0-bin-release.zip
2. 解压 unzip rocketmq-all-4.2.0-bin-release.zip
3. 重命名 mv rocketmq-all-4.2.0 /usr/local/rocketmq
3、配置文件修改
在conf/2m-noslave/broker-a.properties下面,10.1.1.7在broker-b.properties
broker-a.properties
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=10.1.1.6:9876;10.1.1.7:9876
defaultTopicQueueNums=4
listenPort=10911
deleteWhen=04
fileReservedTime=48
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
broker-b.properties
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
namesrvAddr=10.1.1.6:9876;10.1.1.7:9876
defaultTopicQueueNums=4
listenPort=10911
deleteWhen=04
fileReservedTime=48
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
4、修改启动脚本,两台机子一样
因为下载下来的包所需的配置很高,这里需要根据子集服务器的环境进行修改
修改broker启动参数:
vim /usr/local/rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
XX:PermSize=128m -XX:MaxPermSize=320m"
修改mq启动参数
vim /usr/local/rocketmq/bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -
XX:PermSize=128m -XX:MaxPermSize=320m
5、启动NameServer,两台机器分别启动
cd /usr/local/rocketmq/bin
nohup sh mqnamesrv &
6、启动broker【两台机器分别启动broker-a和broker-b】
10.1.1.6启动broker-a:
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
10.1.1.7启动broker-b:
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
7、RocketMQ web界面监控rocketmq-console部署
项目下载地址:https://github.com/apache/rocketmq-externals/tree/master/
下载源码后,找到rocketmq-console配置文件application.properties,并按照自己需求进行配置
rocketmq.config.namesrvAddr=10.1.1.6:9876;10.1.1.7:9876
在rocketmq-console文件根目录执行命令:
mvn clean package -Dmaven.test.skip=true
然后在target目录下找到文件rocketmq-console-ng-2.0.0.jar
启动rocketmq-console,执行命令:
nohup java -jar rocketmq-console-ng-2.0.0.jar &
浏览器访问如图