下文以rocketmq-4.3.0版本为例,新加的broker不作为namesrv使用(要不然需要修改整个集群配置,重启整个集群),原先集群构成为三主三从,刷盘方式为异步刷盘,节点配置为4核8G阿里云服务器。
1.(进入/data路径)下载rocketmq zip包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.0/rocketmq-all-4.3.0-bin-release.zip
2.安装unzip(新机器的话再配置下java环境变量)
yum install -y unzip zip
3.解压rocketmq包
unzip /data/rocketmq-all-4.3.0-bin-release.zip
4.重命名
mv /data/rocketmq-all-4.3.0-bin-release /data/rocketmq-4.3
5.创建集群配置文件夹
mkdir /data/rocketmq-4.3/conf/4m-4s-async
6.创建集群配置文件并设置参数(也可复制原集群节点的配置文件进行稍作修改,主要修改brokerName、brokerId、brokerRole、namesrvAddr四个参数)
touch /data/rocketmq-4.3/conf/4m-4s-async/broker-d.conf
--brokerName:broker名称(需要修改)
--brokerId:broker节点ID,主节点为0,从节点为1
--brokerRole:broker节点角色,主节点为ASYNC_MASTER,从节点为SLAVE。官方文档解释如下
如果对消息的可靠性要求比较严格,可以采用 SYNC_MASTER加SLAVE的部署方式。如果对消息可靠性要求不高,可以采用ASYNC_MASTER加SLAVE的部署方式。如果只是测试方便,则可以选择仅ASYNC_MASTER或仅SYNC_MASTER的部署方式。
一般与flushDiskType对应着用,使用SYNC_MASTER性能会受到影响。
8.broker启停(可使用jps指令查看是否启停成功)
启动
主节点:nohup sh /data/rocketmq-4.3/bin/mqbroker -c /data/rocketmq-4.3/conf/4s-4m-async/broker-d.conf &
从节点:nohup sh /data/rocketmq-4.3/bin/mqbroker -c /data/rocketmq-4.3/conf/4m-4s-async/broker-d-s.conf &
停止
sh /data/rocketmq-4.3/bin/mqshutdown broker
使用jps查看是否启动成功
上图可以看出namesrv和broker都已启动成功。当然,这次新加的节点不作namesrv使用,所以我们在使用jps指令时只能看到BrokerStartup,我截上图只是想说明不管是broker和namesrv都可以通过jps来查看。
9.进入rocketmq控制台,对topic(可往新broker生产)和consumer(可从新broker消费)分别添加新增的broker
topic配置:将broker-d加到原来三主三从集群中,如果不做此项配置,生产者不会往broker-d中生产数据
consumer配置:将borker-d加到原来三主三从中,如果不做此项配置,消费组不会从broker-d中消费数据