欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RocketMQ集群搭建

程序员文章站 2022-07-15 07:58:34
...

RocketMQ集群搭建

如果一步步来碰到坑了,可以联系博主qq371850264
换了个新工作,今天架构师突然扔来一个任务,就是搭建消息队列集群,运用的是
rocketmq,因为以前从来没有接触过所以踩了很多坑!

环境

linux系统 版本CentOS7
rocketmq 4.2.0
jdk 1.8

工具

因为本着能在本地做的事情,现做了然后一口气传到服务器上所以需要下面两个工具:xftp、xshell。百度随便下载

正式开始

第一步:下载解压
去官网下载解压rocketmq http://rocketmq.apache.org/docs/quick-start/

第二步:修改配置

集群搭建有多master、多master多slave异步、多master多slave同步
以多master为例,其他几种只是配置不同。

进入解压后文件的conf目录,会看到三个文件夹分别对应双主双从异步(2m-2s-async)、双主双从同步(2m-2s-sync)、双主(2m-noslave),还有几个文件忽略不计

进入2m-noslave,修改broker-a.properties和broker-b.properties,用笔记本或者去网上下个notepad

打开这两个文件忽略注释,能看到下面几个配置,我想说千万不要去百度上拉来特别特别详细的配置,会坑死你!

brokerClusterName=DefaultCluster
#注意两主的name不能一样,如果有从,从要和主的名字一样
brokerName=broker-a
#0表示主,>0表示从
brokerId=0
deleteWhen=04
fileReservedTime=48
#角色SLAVE是从,ASYNC_MASTER异步主配置,YNC_MASTER
brokerRole=ASYNC_MASTER
#一般不用管,上面没有备注的全部是不管
flushDiskType=ASYNC_FLUSH

下面是需要自己添加的配置

#多主多从端口重复的话会启动失败,所以每个配置文件尽量端口不一样
listenPort=10911
#分别是hosts配置的两个服务器,多服务用分号隔开,跟后面的linux设置有关联
namesrvAddr=rocketmq-namesrv1:9876;rocketmq-namesrv2:9876

第三步:JVM调优

如果是真的有多台服务器来做集群的会可以忽略此步,但是如果是虚拟机和搭建伪集群的话还是配置吧!

分别需要修改bin下的runserver.sh、runbroker.sh

此行 JAVA_OPT=”${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g
这三个参数这么改 Xms1g Xmx1g Xmn512m 分别代表了最小堆内存、最大堆内存、新生代大小

第四步:连接服务器

通过xshell连接服务器,只用配置主机就好其他默认,名称随意改,随后输入帐号密码,有几台服务器你要重复几次,下面几步都一样
RocketMQ集群搭建
然后点击用xftp把整个rocketmq文件夹传过去,注意自己放的位置

第五步:修改服务器网络

输入命令vim /etc/hosts 按i添加两台服务器的地址,例:

192.168.0.121 rocketmq-namesrv1
192.168.0.121 rocketmq1
192.168.0.121 rocketmq-namesrv2
192.168.0.121 rocketmq2
地址写你们自己的服务器地址,这里的名字和上面的配置文件要保持一致
esc退出插入模式,shift+: 输入wq保存退出
Service network restart 重新启动网络,另外一台同样操作

还有要确定防火墙是关闭的,CentOS7的话用下面的命令查看
firewall-cmd –state 注意-cmd前面没有空格,如果是no running就是关闭的不是的话执行下面的命令
systemctl stop firewalld.service 这是本次暂停防火墙
systemctl disable firewalld.service 禁止开机启动
init 6 #重启,然后再输入第一条命令查看防火墙状态

第六步:启动mqnamesrv
每个服务器启动一次
cd /usr/local/rocketmq-all-4.2.0-bin-release/bin 这次我的mq存放目录
nohup sh mqnamesrv & 后台启动
每个服务器启动一次

第七步:启动mqbroker
分别启动所有服务器上的broker
nohup sh mqbroker 接上 下面的参数
-c /usr/local/rocketmq-all-4.2.0-bin-release/conf/2m-noslave/a.properties &
参数意思是用哪个配置,第二个服务器就用b

下面是一些查看命令默认是bin目录

sh mqadmin topicList -n 192.168.0.122:9876 查看此服务器上的topic
Sh mqadmin consumerProgress -n 192.168.0.122:9876 -g PushConsumer
不带-g就是查看此服务器上的 group , -g后面就是group具体名字,带上-g就是查看消费情况
更多的命令请看rocketmq的运维手册,这两条必须有东西才算是启动成功