Rocketmq集群搭建
拓扑
主机名 | 网卡名 | IP | 作用 |
---|---|---|---|
mq-master01 | ens33 | 192.168.162.10 | broker-a |
mq-master02 | ens33 | 192.168.162.11 | broker-b |
mq-slave01 | ens33 | 192.168.162.12 | broker-a-s |
mq-slave02 | ens33 | 192.168.162.14 | broker-b-s |
mq-console-nameserver | ens33 | 192.168.162.15 | nameserver,console |
双master 双slave,同步双写,同步刷盘
1.基础准备
#这里的基础准备很重要,要引起重视
#主机名映射,5台均相同
[root@mq-console-nameserver ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.162.10 mq-master01
192.168.162.11 mq-master02
192.168.162.12 mq-slave01
192.168.162.14 mq-slave02
192.168.162.15 mq-console-nameserver
#关闭防火墙相关的所有东西,5台均相同
[root@mq-console-nameserver ~]# cat /etc/sysconfig/selinux |grep '^SELINUX='
SELINUX=disabled
[root@mq-console-nameserver ~]# systemctl stop iptables
Failed to stop iptables.service: Unit iptables.service not loaded.
[root@mq-console-nameserver ~]# systemctl disable firewalld
[root@mq-console-nameserver ~]# systemctl stop firewalld
[root@mq-console-nameserver ~]# getenforce
Disabled
#配置java环境,5台均相同
[root@mq-console-nameserver ~]# yum -y install java-devel
[root@mq-console-nameserver ~]# export JAVA_HOME=/usr/lib/jvm/java
[root@mq-console-nameserver ~]# echo "export JAVA_HOME=/usr/lib/jvm/java" >> /etc/profile
[root@mq-console-nameserver ~]# echo "CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" >> /etc/profile
[root@mq-console-nameserver ~]# echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
[root@mq-console-nameserver ~]# source /etc/profile
[root@mq-console-nameserver ~]# java -version
[root@mq-console-nameserver ~]# jps
#一键执行
-------------------------------------------------------------------------------------
echo "192.168.162.10 mq-master01 " >> /etc/hosts
echo "192.168.162.11 mq-master02 " >> /etc/hosts
echo "192.168.162.12 mq-slave01 " >> /etc/hosts
echo "192.168.162.14 mq-slave02 " >> /etc/hosts
echo "192.168.162.15 mq-console-nameserver " >> /etc/hosts
systemctl stop iptables
systemctl disable firewalld
getenforce
yum -y install java-devel
export JAVA_HOME=/usr/lib/jvm/java
echo "export JAVA_HOME=/usr/lib/jvm/java" >> /etc/profile
echo "CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" >> /etc/profile
echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile #这行可能有点问题
source /etc/profile
java -version
which java
jps
2.开始部署
版本:rocketmq3.2.6
网盘:https://pan.baidu.com/s/16UAXHwzzy0DoGX4u93vK7A
提取码:rjib
2.1四节点机器基础部署
#安装rocketmq,创建存储路径,4台机器一样
[root@mq-master01 ~]# mkdir -p /app/software
[root@mq-master01 ~]# ll
total 11580
-rw-r--r-- 1 root root 11854578 Feb 27 10:29 rocketmq3.2.6.zip
[root@mq-master01 ~]# cd /app/software
[root@mq-master01 software]# unzip rocketmq3.2.6.zip
[root@mq-master01 software]# ln -s /app/software/alibaba-rocketmq3.2.6 /app/rocketmq
[root@mq-master01 software]# mkdir -p /app/software/rocketmq/store
[root@mq-master01 software]# mkdir -p /app/software/rocketmq/store/commitlog
[root@mq-master01 software]# mkdir -p /app/software/rocketmq/store/consumequeue
[root@mq-master01 software]# mkdir -p /app/software/rocketmq/store/index
[root@mq-master01 software]# mkdir -p /app/software/rocketmq/store/checkpoint
[root@mq-master01 software]# mkdir -p /app/software/rocketmq/store/abort
#一键执行
--------------------------------------------------------
mkdir -p /app/software
cd /app/software
unzip rocketmq3.2.6.zip
ln -s /app/software/alibaba-rocketmq3.2.6 /app/rocketmq
mkdir -p /app/software/rocketmq/store
mkdir -p /app/software/rocketmq/store/commitlog
mkdir -p /app/software/rocketmq/store/consumequeue
mkdir -p /app/software/rocketmq/store/index
mkdir -p /app/software/rocketmq/store/checkpoint
mkdir -p /app/software/rocketmq/store/abort
2.2双主备节点broker配置
##找到配置文件,末行模式,注释所有,重新插入,四节点均是如此
[root@mq-master01 software]# sed -i s/^/#/ /app/rocketmq/conf/2m-2s-sync/broker-a.properties
[root@mq-master02 software]# sed -i s/^/#/ /app/rocketmq/conf/2m-2s-sync/broker-b.properties
[root@mq-slave01 software]# sed -i s/^/#/ /app/rocketmq/conf/2m-2s-sync/broker-a-s.properties
[root@mq-slave02 software]# sed -i s/^/#/ /app/rocketmq/conf/2m-2s-sync/broker-b-s.properties
#插入的内容只有起始的三项不同以外,其他均相同
brokerName,brokerId,brokerRole
mq-master01 : broker-a
[root@mq-master01 software]# vim /app/rocketmq/conf/2m-2s-sync/broker-a.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样 例如:在a.properties 文件中写 broker-a 在b.properties 文件中写 broker-b
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,这里nameserver是单台,如果nameserver是多台集群的话,就用分号分割(即namesrvAddr=ip1:port1;ip2:port2;ip3:port3)
namesrvAddr=192.168.162.15:9876;
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启&#