RocketMQ安装
本安装操作基于Centos7
环境准备
1.准备JDK环境
安装JDK环境不在此处进行描述了,详细请点击无外网环境搭建Jdk/Git/Maven/Docker
2.准备RocketMQ
下载请参考RocketMQ文档,详细点击链接,将压缩包上传至服务器。
配置RocketMQ环境变量:
-
创建临时目录并解压压缩包
[root@localhost u01]# mkdir -p /u01/environment/rocketmq [root@localhost u01]# cd /u01/environment [root@localhost u01]# 上传文件到此目录下 [root@localhost environment]# ll |grep rocketmq-all -rw-r--r-- 1 root root 13881969 4月 14 10:47 rocketmq-all-4.8.0-bin-release.zip [root@localhost environment]# unzip rocketmq-all-4.8.0-bin-release.zip -d rocketmq [root@localhost environment]# cd rocketmq [root@localhost rocketmq]# ls rocketmq-all-4.8.0-bin-release [root@localhost rocketmq]# cd rocketmq-all-4.8.0-bin-release/ [root@localhost rocketmq-all-4.8.0-bin-release]# pwd /u01/environment/rocketmq/rocketmq-all-4.8.0-bin-release
-
在/etc/profile文件配置环境变量;添加两个环境变量
ROCKETMQ_HOME
和NAMESRV_ADDR
,只需要关注其中配置的目录是否正确export ROCKETMQ_HOME=/u01/environment/rocketmq/rocketmq-all-4.8.0-bin-release/ export NAMESRV_ADDR=localhost:9876
并追加
$ROCKETMQ_HOME/bin
给PATH环境变量export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$ROCKETMQ_HOME/bin
-
编辑rocketmq文件夹下bin目录下的runserver.sh和runbroker.sh脚本,修改其中的运行内存限制,调整至服务器可接收的大小,我这里调整为512m。
runserver.sh脚本修改内容:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
runbroker.sh脚本修改内容:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn128m" JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=512m"
-
编辑rocketmq文件夹下conf目录下的broker.conf文件,添加如下两行,方便我们测试使用
autoCreateTopicEnable=true #aclEnable=true
-
在rocketmq文件夹目录下创建一个init.sh脚本,脚本内容如下;它主要的功能是创建日志文件夹,用于存放我们启动namesrv和broker的日志
#!/bin/bash #*********************************************** #Author: luotianhao #Mail: tianhao.luo@hand-china.com #Version: 1.0 #Date: 2021-04-14 #FileName: startup.sh #Description: This is a test script. #*********************************************** export LANG="zh_CN.UTF-8" #颜色配置 RED_COLOR='\E[1;31m' GREEN_COLOR='\E[1;32m' YELLOW_COLOR='\E[1;33m' BLUE_COLOR='\E[1;34m' RES='\E[0m' DoIntroduce(){ echo "1.请手动修改bin/runserver.sh和bin/runbroker.sh脚本中的启动服务内存大小,适配当前服务器内存! 2.请将本脚本放入rocket根目录下" } GetPath(){ NEWPATH=$PWD } DoIntroduceFirst(){ echo -e "当前脚本所在目录为:${RED_COLOR}$NEWPATH${RES} " read -t 30 -p "请确认红色目录是你ROCKET根目录[y/n]:" CODE_DIR_RIGHT_FLAG case $CODE_DIR_RIGHT_FLAG in y) ;; n) exit 1 ;; *) echo "please input [y/n]" exit 1; esac } DoCreateLogDir(){ #创建日志文件夹 LOG_DIR="$NEWPATH/log" [ -e $LOG_DIR ] || { echo -e "创建${RED_COLOR}$LOG_DIR${RES}日志目录" mkdir -p $LOG_DIR } && { echo -e "${GREEN_COLOR}$LOG_DIR${RES}日志目录已经存在了" } } Main(){ #获取路径 GetPath #介绍 DoIntroduce #介绍 DoIntroduceFirst #启动 DoCreateLogDir } Main
启动测试
1.初始化日志文件夹
执行上面init脚本
2.启动
启动namesrv和broker,并查看日志
[root@localhost rocketmq-all-4.8.0-bin-release]# sh bin/mqnamesrv > log/namesrv.log 2>&1 &
[root@localhost rocketmq-all-4.8.0-bin-release]# sh bin/mqbroker -c conf/broker.conf > log/broker.log 2>&1 &
[root@localhost rocketmq-all-4.8.0-bin-release]# tail -f log/namesrv.log
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
^C
[root@localhost rocketmq-all-4.8.0-bin-release]# tail -f log/broker.log
The broker[broker-a, 192.168.15.79:10911] boot success. serializeType=JSON and name server is localhost:9876
2.测试
先使用jps
检查是否启动了,如果有NamesrvStartup和BrokerStartup表示已经启动成功。
执行sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
来发送消息,执行sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
来消费消息。
[root@localhost rocketmq-all-4.8.0-bin-release]# jps
104368 Jps
102403 NamesrvStartup
103715 BrokerStartup
[root@localhost rocketmq-all-4.8.0-bin-release]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
[root@localhost rocketmq-all-4.8.0-bin-release]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer