基于最新的RocketMQ4.2版本,搭建2Master模式。
硬件环境:centos6.9_x64(两台虚拟机)
IP1:192.168.150.128
IP2:192.168.150.129
1、从github下载RocketMQ4.2
https://github.com/apache/rocketmq/archive/rocketmq-all-4.2.0.tar.gz
因为下载的是源码文件,所以需要先用mvn构建之后才可以使用,如果在windows环境下使用mvn构建那么生成的sh脚本需要转为unix,否则启动会报错。
下载后解压的文件如下:
在当前目录使用mvn构建
mvn -Prelease-all -DskipTests=true clean install -U
构建完毕之后进入,在distribution目录下有启动的文件
cd distribution/target/apache-rocketmq
RocketMQ的NameServer默认虚拟机加载内存是4G,broker默认虚拟机加载内存是8G,本次是演示安装,所以需要手动将这些值改小。
将bin下面的runserver.sh和runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
分别改为 1g 1g 512m 和 1g 1g 512m
注意:不要小于1g,否则启动会报错
修改完毕之后,配置conf目录下的broker.conf文件,也可以配置下面的properties文件,二选一即可
配置内容如下:
#集群名称
brokerClusterName = rocketmq-cluster
#一个集群下brokerName不允许重复
brokerName = broker-a
#0代表是Master
brokerId = 0
namesrvAddr= luna128.com:9876;luna129.com:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件的时间节点,凌晨4点
deleteWhen = 04
#文件保留时间,默认 48 小时
fileReservedTime = 48
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole = ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType = ASYNC_FLUSH
配置完毕,先启动nameserver
[root@localhost bin]# nohup sh mqnamesrv &
RocketMQ是使用java开发,只需要jps即可查看nameserver进程
启动broker,指定配置文件,同样jps命令即可查看broker进程
[root@localhost bin]# nohup sh mqbroker -c ../conf/broker.conf & > nohup.out1 &
192.168.150.128 和 129 上唯一不同就是broker.conf文件的brokerName,两台服务器都启动之后,安装RocketMQ控制台管理RocketMQ集群。
下载console:https://github.com/apache/rocketmq-externals
目录如下:
进入rocketmq-console,使用mvn构建,
mvn clean package -Dmaven.test.skip=true
rocket-console使用springboot开发,在application.properties里面配置rocketmq.config.namesrvAddr=192.168.150.128:9876;192.168.150.129:9876
也可以在rocket-console启动时候指定,rocketmq.config.namesrvAddr=
即可管理RocketMQ集群,启动rocket-console管控台(默认访问地址:127.0.0.1:8080)