rocketmq4.9.0集群搭建
1:下载
https://rocketmq.apache.org/download
2:安装前置工作
1:准备三台服务器
3:上传文件到指定目录
解压是unzip,但是这个主机上没有这个命令,先yum安装一下
yum install -y unzip zip
然后解压到指定目录下
unzip rocketmq-all-4.9.0-bin-release.zip -d /opt/installs/
然后这个名字有点长,修改一下,看起来简洁一点
然后由于是本地虚拟机玩,没有什么流量,但是它启动的时候 里面nameserver和brocker的内存占用都太大了 ,修改小一点。注意的是生产中是绝对不能改成这么小的!!!
一个是 runserver.sh文件中的这句。它本来是8g的配置 我这里就改256就行了
另外一个是runbroker.sh。同样改小一点
4:配置集群
首先是计划集群的如下的三主三从的集群。但是只有三台服务器,所以slave的节点必须错开,不然就没有什么用
主机:133 134 135 主:master133 master134 master135 从:slave134 slave 135 slave 133
先进入config文件夹,里面有现成的2主2从的模板,复制一份,然后改成3主三从的就行
然后里面我们需要指定一下namesrvAddr的地址
namesrvAddr=cluster133:9876;cluster134:9876;cluster135:9876
需要注意的是,刚复制过来的那个文件,还得把brokerName改一下
然后再修改-s的文件,也就是slave的配置文件
里面需要配置几个其他的参数,具体如下
#----------cluster config--------------- namesrvAddr=cluster133:9876;cluster134:9876;cluster135:9876 #由于同一个服务器跑了两个,所以得把监听端口修改一下 listenPort=11911 #同样的,存储消息的相关路径也不能跟另外一个冲突 storePathRootDir=~/store-s storePathCommitLog=~/store-s/commitlog storePathConsumeQueue=~/store-s/consumequeue storePathIndex=~/store-s/index storeCheckpoint=~/store-s/checkpoint abortFile=~/store-s/abort
编辑完以后,先分发一下到其他服务器。分发完毕以后,每台服务器把不相关的配置文件都删掉,不然配置太多,容易混淆,到后面就乱套了
133,只需要留-a和它负责的从节点也就是-b-s文件
134,只需要留-b和它负责的从节点也就是-c-s文件
135,只需要留-c和它负责的从节点也就是-a-s文件
如图135:
5:启动集群
然后先把每台机器的nameserv启动起来
nohup sh bin/mqnamesrv &
然后分别把每台机器的主broker启动
当然,另外两台命令中的配置要改一下,分别是-a、-b、-c。从节点也是这个命令 只是指定的配置文件不一样了。
nohup sh bin/mqbroker -c conf/3m-3s-async/broker-a.properties &
启动后,就出出现nameserv和主broker的进程
注意启动从节点的时候,要根据名称和上面集群分配的来,
从图中看出,
133的从节点是在135上面,目前133的配置文件是-a,所以在135上面启动-a-s.properties。
134的从节点是在133上面,目前134的配置文件是-b,所以在133上面启动-b-s.properties。
135的从节点是在134上面,目前135的配置文件是-c,所以在134上面启动-c-s.properties。
启动完成后,先看看进程
然后可以配置一下mq的控制台项目,去看一下实际的情况。先拉下代码,本地配置一下 启动
用ide打开以后,先把刚配置的几个namesrvAddrs添加一下。当然服务器部署的时候 最好改成服务器映射的名字 尽量不要用ip
然后启动后,发现报错了。连不上这个地址,想起来端口没开放,然后把相关的几个端口都开放一下或者本地玩的话就把防火墙关掉。分别是:9876、10909、11911、11909
开放完毕后,等待集群上线,最后全部上线后 就是如下的三主三从集群
为了确保服务可用,可以在命令行,查看一下broker的日志,然后页面上手动发个消息试试
broker没有错误,主从同步刷新的日志也是正常的,说明集群已经成功了,并且是可用的
发完以后,可以在集群菜单中看到!