RocketMq的集群部署(二)

一、RocketMq双主集群部署

rocketMq的下载见:https://www.cnblogs.com/simplefuer/p/12192984.html

RocketMq的单机安装(一)

1、配置hosts和环境变量

两台服务器修改/etc/hosts,加入下面两行

vim /etc/hosts

192.168.1.0 rocketmq-nameserver-1

192.168.1.1 rocketmq-nameserver-2

 

以下为我自己服务器的配置,第一列为服务器内网地址,第二列为服务器默认主机名,你可以设置成自定义的:

 

 

修改/etc/profile

vim /etc/profile

export ROCKETMQ_HOME=/opt/apps/rocketmq

export PATH=$ROCKETMQ_HOME/bin:$PATH

export NAMESRV_ADDR=*****(服务器内网地址):9876

修改完成后,按Esc键,:wq 保存

然后输入:source /etc/profile  使环境变量生效

2、修改配置文件

进入 /opt/usr/rocketmq-4.6/conf/2m-noslave 文件下,修改broker-a.properties和broker-b.properties文件。

broker-a.properties 配置文件

 

broker-b.properties 配置文件

#nameServer地址,分号分割

namesrvAddr = 192.168.1.0:9876;192.168.1.1:9876

#在发消息时,自动创建服务器不存在的topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许Broker自动创建Topic,建议线下开启,线上关闭

autoCreateTopicEnable=true

#是否允许Broker自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=true

#Broker 对外服务的监听端口

listenPort=10911

#commitLog每个文件的大小默认1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue每个文件默认存30W条,根据业务情况调整

mapedFileSizeConsumeQueue=300000

#检测物理文件磁盘空间

diskMaxUsedSpaceRatio=88

#存储路径

storePathRootDir=/opt/usr/rocketmq-4.6/store/

storePathCommitLog= /opt/usr/rocketmq-4.6/store/commitlog

storePathConsumeQueue=/opt/usr/rocketmq-4.6/store/consumequeue

storePathIndex=/opt/usr/rocketmq-4.6/store/index

storeCheckPoint = /opt/usr/rocketmq-4.6/store/checkpoint

abortFile = /opt/usr/rocketmq-4.6/store/abort

brokerClusterName=rocketmq-cluster

#broker名字,注意此处不同的配置文件填写的不一样

brokerName=broker-b

#0 表示Master, >0 表示Slave

brokerId=0

# 删除文件时间点,默认凌晨 4点

deleteWhen=04

#文件保留时间,默认 48 小时

fileReservedTime=48

#异步复制Master

brokerRole=ASYNC_MASTER

#异步刷盘

flushDiskType=ASYNC_FLUSH

 

从以上两个配置文件可以看出,除了brokerName不同外,其它配置都是一样的。

两台服务器都做以上操作。

3、启动两台服务器的namesrv

进入bin目录,使用以下命令:

nohup mqnamesrv  >/opt/usr/rocketmq-4.6/logs/namesrv.log 2>&1 &

显示以下内容,即启动成功。

 

4、启动第一台节点的broker

nohup sh mqbroker -c ../conf/2m-noslave/broker-a.properties >/opt/usr/rocketmq-4.6/logs/broker.log  2>&1 &

查看日志,显示以下内容时,即启动成功。

 

 

 

5、在另一台节点上做同样的操作,nameserver的启动命令一样,但是broker启动需要使用broker-b的这个配置文件进行启动

nohup sh mqbroker -c ../conf/2m-noslave/broker-b.properties >/opt/usr/rocketmq-4.6/logs/broker.log  2>&1 &

6、以上3、4、5的命令可以在启动脚本里,通过脚本启动即可。

cd /opt/usr/rocketmq-4.6/shell

vim broker.sh

#!/bin/sh

nohup sh ../bin/mqbroker -c ../conf/2m-noslave/broker-a.properties >/opt/usr/rocketmq-4.6/logs/broker.log  2>&1 &

Esc键+:wq 保存。

启动时,直接启动脚本就行,这样每次启动的时候就不用手敲了。

启动命令:sh broker.sh

7、启动完成后,可用以下命令进行测试。

生产者:

sh ../bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

 

消费者:

sh ../bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

 

 8、部署rocketmq集群时,遇到的坑:

在store文件夹下多建了文件夹,造成broker不能启动。

在配置文件夹路径时,在store文件夹下,创建了几个包,在启动broker时,一直启动不了,也没有报错;后来想起是在rocketmq下新建了包后,才出现的该问题,所以试了下将store下的包删除,重新启动,最后发现是因为建了checkpoint造成的,将该包删除并重新启动就可以了。

9、RocketMq控制后台的部署可参考:http://www.imooc.com/article/details/id/290092 

posted @ 2020-01-16 16:57  简单馥儿  阅读(340)  评论(0编辑  收藏  举报