1 配置JDK环境
安装RocketMQ前需要安装JDK环境
只有jre运行环境
yum install -y java-1.8.0-openjdk.x86_64
yum install -y java-devel
2 下载并解压RocketMQ文件
进入安装目录
mkdir -p /usr/local/server && cd /usr/local/server
下载
wget https://archive.apache.org/dist/rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip
解压
unzip rocketmq-all-4.5.1-bin-release.zip -d ./
重命名
mv rocketmq-all-4.5.1-bin-release rocketmq
3 修改RocketMQ占用的内存大小
RocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小
进入bin目录
cd /usr/local/server/rocketmq/bin
编辑runbroker.sh和runserver.sh修改默认JVM大小
vi runserver.sh
JVM configuration配置下方的配置改成
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
vi runbroker.sh
JVM Configuration配置下方的配置改成
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=128m"
4 创建RocketMQ存储文件的目录
进入解压目录
cd /usr/local/server/rocketmq
创建目录
mkdir -p logs store/commitlog store/consumequeue store/index
5 编写配置文件
进入解压目录
cd /usr/local/server/rocketmq/conf
创建目录
mkdir 1m-1s-async
创建配置文件
touch 1m-1s-async/broker.properties
进入到/usr/local/server/rocketmq/conf/1m-1s-async/broker.properties 中添加如下配置
#nameServer 地址,分号分割
namesrvAddr=120.79.202.181:9876
brokerIP1=120.79.202.181
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示Master, > 0 表示slave
brokerId=0
#在发送消息时,自动创建服务器不存在的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/server/rocketmq/store
#commitLog存储路径
storePathCommitLog=/usr/local/server/rocketmq/store/commitlog
#消费队列存储路径
storePathConsumeQueue=/usr/local/server/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/server/rocketmq/store/index
#checkpoint文件存储路径
storeCheckpoint=/usr/local/server/rocketmq/store/checkpoint
#abort文件存储路径
abortFile=/usr/local/server/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
# flushCommitLogLeastPages=4
# flushConsumeQueueLeastPages=2
# flushCommitLogThoroughInterval=10000
# flushConsumeQueueThoroughInterval=60000
# Broker 的角色
# - ASYNC_MASTER 异步复制Master
# - SYNC_MASTER 同步双写Master
# - SLAVE
brokerRole=ASYNC_MASTER
# 刷盘方式
# - ASYNC_FLUSH 异步刷盘
# - SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageTreadPoolNums=128
#拉消息线程池数量
#pullMessageTreadPoolNums=128
进入conf 目录,替换所有xml中的${user.home},保证日志路径正确
cd /usr/local/server/rocketmq/conf
替换${user.home}为/usr/local/server/rocketmq
sed -i 's#${user.home}#/usr/local/server/rocketmq#g' *.xml
6 启动NameServer和Broker
启动NameServer
cd /usr/local/server/rocketmq/bin && nohup sh mqnamesrv &
启动Broker
cd /usr/local/server/rocketmq/bin && nohup sh mqbroker -c /usr/local/server/rocketmq/conf/1m-1s-async/broker.properties > /dev/null 2>&1 &
7 查看是否启动成功
[root@localhost conf]# jps -l
4468 org.apache.rocketmq.namesrv.NamesrvStartup
4629 org.apache.rocketmq.broker.BrokerStartup
[root@localhost conf]# ps aux | grep mqnamesrv
root 4462 0.0 0.0 113184 1436 pts/0 S 23:02 0:00 sh mqnamesrv
Root 4764 0.0 0.0 112712 968 pts/5 R+ 23:04 0:00 grep --color=auto mqnamesrv
8 关闭NameServer和Broker
关闭NameServer
cd /usr/local/server/rocketmq/bin && sh mqshutdown namesrv
关闭Broker
cd /usr/local/server/rocketmq/bin && sh mqshutdown broker