RocketMQ
准备
虚拟机
centos7
jdk8u281
下载地址
安装版RocketMQ版本受jre环境影响,关系如下表格(取自官方)
Version | Client | Broker | NameServer |
---|---|---|---|
4.0.0-incubating | >=1.7 | >=1.8 | >=1.8 |
4.1.0-incubating | >=1.6 | >=1.8 | >=1.8 |
4.2.0 | >=1.6 | >=1.8 | >=1.8 |
4.3.x | >=1.6 | >=1.8 | >=1.8 |
4.4.x | >=1.6 | >=1.8 | >=1.8 |
4.5.x | >=1.6 | >=1.8 | >=1.8 |
4.6.x | >=1.6 | >=1.8 | >=1.8 |
4.7.x | >=1.6 | >=1.8 | >=1.8 |
4.8.x | >=1.6 | >=1.8 | >=1.8 |
安装步骤
卸载centos7自带的openjdk
# 查询系统是否已经安装jdk
rpm -qa|grep java
这三个可以不删除
# 卸载命令
# rpm -e --nodeps + 包名
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.275.b01-0.el7_0.x86_64
安装 Java
jdk
# 下载地址
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
# 将安装包上传
/usr/local/jdk-8u281-linux-x64.tar.gz
# 解压
tar -xzvf jdk-8u281-linux-x64.tar.gz
# 软连接
sudo ln -s jdk1.8.0_281/ jdk
# 设置环境变量
vim /etc/profile
# 添加内容
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 生效环境变量
source /etc/profile
# 检查是否安装成功
java -version
安装rocketMQ
# 下载 使用 wget或者下载文件上传到服务器都可以
wget https://mirrors.bfsu.edu.cn/apache/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
# 解压安装
unzip rocketmq-all-4.8.0-bin-release.zip
# 只是为了找目录不用那么长
ln -s rocketmq-all-4.8.0-bin-release rocketmq
启动命令
mqnamesrv
# 切换到安装目录的bin目录下
# 前台启动 mqnamesrv
./mqnamesrv
# 后台启动 mqnamesrv
nohup ./mqnamesrv > /dev/null 2>&1 &
# 检查结果
ps -ef | grep mqnamesrv
mqbroker
# 前台启动 mqbroker
./mqbroker -n 192.168.94.129:9876 autoCreateTopicEnable=true
# 后台启动 mqbroker
nohup ./mqbroker -n 192.168.94.129:9876 autoCreateTopicEnable=true > /dev/null 2>&1 &
问题
内存不足导致启动失败
原因:RocketMQ的配置默认是生产环境的配置,设置的jvm的内存大小值比较大,对于学习测试环境可能没这么大,所以需要调整默认值
解决办法,找到runserver.sh和runbroker.sh,修改如下内容:
JAVA_OPT=”${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”
修改 runserver.sh
# 编辑runserver.sh
vim runserver.sh
# 查找内容
/-server
# 原内容
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# 修改内容
# -Xmx256m:设置JVM最大可用内存为256m。
# -Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存
# -Xmn128m:设置年轻代大小为128m。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改 runbroker.sh
# 编辑
vim runbroker.sh
# 查找内容
/-server
# 原内容
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
# 修改内容
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
重启 mqnamesrv
重启 mqbroker
注:引用官方文档,很详细可以参考
TODO 暂时写到这里,后续继续补充