RocketMQ(双主双从集群搭建+DashBorad搭建)
文章目录
1 环境准备
1.1 两台虚拟机
先准备两台虚拟机,我这里使用的是一台阿里云的服务器,一台腾讯云的服务器将rocketMQ进行安装解压,不会的朋友可以参考之前的文章RocketMq的安装
我们会在这两台服务器上分别部署 master1,slave2和master2,slave1 交叉部署,当然条件允许的可以部署到四台机器上去。
注意: 将RocketMQ的JVM运行内存调小一点。
1.2 配置环境变量
配置下环境变量,就不用跑到rocketMQ的bin目录下去执行命令了
ROCKETMQ_HOME=/home/xzq/software/rocketmq-4.9.2
PATH=$PATH:$ROCKETMQ_HOME/bin
export ROCKETMQ_HOME PATH
1.3 修改Host
方便修改配置文件
#nameserver
127.0.0.1 rocketmq-nameserver1
127.0.0.2 rocketmq-nameserver2
#broker
127.0.0.1 rocketmq-master1
127.0.0.2 rocketmq-master2
127.0.0.2 rocketmq-slave2
127.0.0.1 rocketmq-slave2
1.4 创建存储位置
#Master 存储位置路径
mkdir /home/xzq/software/rocketmq-4.9.2/store;
mkdir /home/xzq/software/rocketmq-4.9.2/store/commitlog;
mkdir /home/xzq/software/rocketmq-4.9.2/store/consumequeue;
mkdir /home/xzq/software/rocketmq-4.9.2/store/index;
mkdir /home/xzq/software/rocketmq-4.9.2/store/checkpoint;
mkdir /home/xzq/software/rocketmq-4.9.2/store/abort;
#Slave 存储位置路径
mkdir /home/xzq/software/rocketmq-4.9.2/store-s;
mkdir /home/xzq/software/rocketmq-4.9.2/store-s/commitlog;
mkdir /home/xzq/software/rocketmq-4.9.2/store-s/consumequeue;
mkdir /home/xzq/software/rocketmq-4.9.2/store-s/index;
mkdir /home/xzq/software/rocketmq-4.9.2/store-s/checkpoint;
mkdir /home/xzq/software/rocketmq-4.9.2/store-s/abort;
注意: Master和Slave配置文件中的存储位置不能相同,否则会启动失败。一定要分别创建各自的存储位置。
1.5 配置文件修改
我们要部署四台RocketMQ,也就是要写四份配置文件
RocketMQ已经准备好了双主双从配置文件的模板
我们在这里先搭建 双主双从的同步版本
其中 borker-a ,broker-b 表示部署的两台Master,broker-a-s,broker-b-s表示部署的两台Slave
这里那broker-b的配置文件来说
红框标注的是我们需要手动改的地方,其他的暂时先不用管。
这里面我们要注意 这四个RocketMQ的集群名称需要相等,每个主从组之间的brokerName相同
brokerId=0表示Master,>0表示Slave。其他的看注释
这里已经上传到了我的网盘中需要的可以下载RocketMQ双主双从配置文件
1.6 IP配置
Broker启动时会将自身注册到nameserver上,Producer和consumer从namesrv上拉取broker的信息。
我的两台服务器都是云服务器,有着内网地址和外网地址
所以我在部署的时候发生了一个问题:
我的集群搭建完毕之后,Producer从namesrv上拉下来的Broker地址是内网地址
所以我们要指定broker注册时使用哪一个IP
在配置文件中增加:
# 当前broker监听的IP
brokerIP1=127.0.0.1
# 存在broker主从时,在broker主节点上配置了brokerIP2的话,broker从节点会连接主节点配置的brokerIP2来同步。
brokerIP2=127.0.0.1
Master需要配置IP1,IP2 ,Slave只需要配置IP1就行
2 启动
前面已经配置过了环境变量,这里就不需要在进入rocketMQ的bin目录
2.1 启动namesrv集群
分别在两个服务器执行命令
nohup mqnamesrv &
jps查看启动成功
2.2 启动broker集群
服务器A启动 broker-a 与broker-b-s
nohup mqbroker -c /home/xzq/software/rocketmq-4.9.2/conf/2m-2s-sync/broker-a.properties &
nohup mqbroker -c /home/xzq/software/rocketmq-4.9.2/conf/2m-2s-sync/broker-b-s.properties &
服务器B启动 broker-b 与broker-a-s
nohup mqbroker -c /home/xzq/software/rocketmq-4.9.2/conf/2m-2s-sync/broker-b.properties &
nohup mqbroker -c /home/xzq/software/rocketmq-4.9.2/conf/2m-2s-sync/broker-a-s.properties &
jps查看是否启动成功
可以看到一台namesrv和两台broker已经启动完毕
3 DashBorad的使用
之前不叫RocketMQ-DashBorad 而是在Rocket的扩展包中叫console项目,现在已经独立出来成DashBorad项目
Github地址
将源码下载下来
3.1 修改配置信息
主要就是修改namesrv
然后还有一处地方,DashBorad的通道走那个,我这里不走vip通道,所以设置了false
这里需要注意一下
如果是自己本地的虚拟机 防火墙可以直接关闭
如果是云服务器需要放开那些端口呢?
namesrv 9876 (默认端口)
broker-master 10911(默认端口)
broker-slave 11011(默认端口)
broker-channel 10912(默认端口)
broker-VipChannel 10909 (默认端口)
3.2 Maven打包
执行命令
mvn clean package -D maven.test.skip=true
但是却看到失败了
这个是前端的东西,大概意思就是下载前端的依赖包,反正就是在Maven打包的时候执行yarn install命令失败。
那我们就手动将这个命令执行一下,并将pom文件中配置的yarn install注释掉
首先在frontend文件夹下
执行 yarn install
注释POM文件
继续执行打包命令
成功,然后就仍在你的服务器上启动就行了