1、准备工作
jdk 1.7+
rocketMq 4.2.0
jdk安装这里就不介绍了,没有安装的可以查看这篇文章。CentOS卸载openjdk并安装jdk 1.8
2、下载并配置MQ
使用wget命令下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip
解压到指定位置
unzip rocketmq-all-4.2.0-bin-release.zip -d /usr/local/rocketmq-4.2.0
创建存储信息目录
mkdir /usr/local/rocketmq-4.2.0/store
mkdir /usr/local/rocketmq-4.2.0/store/commitlog
mkdir /usr/local/rocketmq-4.2.0/store/consumequeue
mkdir /usr/local/rocketmq-4.2.0/store/index
修改日志文件配置
mkdir -p /usr/local/rocketmq-4.2.0/logs
cd /usr/local/rocketmq-4.2.0/conf && sed -i 's#${user.home}#/usr/local/rocketmq-4.2.0#g' *.xml
修改RocketMQ配置文件
vim /usr/local/rocketmq-4.2.0/conf/2m-noslave/broker-a.properties
vim /usr/local/rocketmq-4.2.0/conf/2m-noslave/broker-b.properties
配置如下:
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
# 指定broker ip
brokerIP1=47.98.135.44
#nameServer地址,分号分割
namesrvAddr=47.98.135.44:9876;47.96.112.84:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
注意:
brokerIP1这个参数对应每台机器的外网ip,配置这个参数主要是因为有的机器(多网卡)无法自动到外网ip。
根据服务器内存大小配置启动脚本
注意:
rocketmq-4.2.0 使用的都已经是8g了,所以根据自己的服务器修改对应的内存大小,这里我改成了2g,具体还得看自己服务器的内存进行设定。
vim /usr/local/rocketmq-4.2.0/bin/runserver.sh
vim /usr/local/rocketmq-4.2.0/bin/runbroker.sh
启动步骤
- 1、先依次启动两台机器的namesrv
cd /usr/local/rocketmq-4.2.0/bin/
两台机器都输入以下命令启动namesrv
nohup sh mqnamesrv &
- 2、再依次启动两台机器的broker
第一台机器
nohup sh mqbroker -c /usr/local/rocketmq-4.2.0/conf/2m-noslave/broker-a.properties &
第二台机器
nohup sh mqbroker -c /usr/local/rocketmq-4.2.0/conf/2m-noslave/broker-b.properties &
查看日志是否启动成功
tail -f -n 500 /usr/local/rocketmq-4.2.0/logs/rocketmqlogs/broker.log
出现以上信息就启动成功了。