1、官网及版本特性
官网:https://rocketmq.apache.org/
特性及版本发布信息:https://www.oschina.net/p/rocketmq
2、下载
https://rocketmq.apache.org/release_notes/release-notes-4.9.4/
3、上传并解压
unzip rocketmq-all-4.9.4-bin-release.zip
mv rocketmq-all-4.9.4-bin-release rocketmq-4.9.4
4、修改JVM配置
RocketMQ 默认的虚拟机内存较大,启动 Broker 或者 NameServer 可能会因为内存不足而导致失败,所以需要编辑如下两个配置文件,修改 JVM 内存大小。
修改bin/runbroker.sh默认JVM 大小
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
修改bin/runserver.sh默认JVM 大小
choose_gc_options()
{
# Example of JAVA_MAJOR_VERSION value : '1', '9', '10', '11', ...
# '1' means releases befor Java 9
JAVA_MAJOR_VERSION=$("$JAVA" -version 2>&1 | sed -r -n 's/.* version "([0-9]*).*$/\1/p')
if [ -z "$JAVA_MAJOR_VERSION" ] || [ "$JAVA_MAJOR_VERSION" -lt "9" ] ; then
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
else
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"
JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log:time,tags:filecount=5,filesize=30M"
fi
}
5、添加环境变量
编辑/etc/profile添加以下内容
export ROCKETMQ_HOME=/opt/rocketmq-4.9.4/
export PATH=${ROCKETMQ_HOME}/bin:$PATH
执行以下命令生效环境变量
source /etc/profile
6、启动
# 首先启动Name Server
nohup bash mqnamesrv &
# 验证Name Server 是否启动成功
tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
# 启动Broker
nohup bash mqbroker -n localhost:9876 &
# 验证Broker是否启动成功,例如Broker的IP为:192.168.1.2,且名称为broker-a
tail -f ~/logs/rocketmqlogs/broker.log
The broker[VM-4-15-ubuntu, 10.0.4.15:10911] boot success. serializeType=JSON and name server is localhost:9876
# 关闭
bash mqshutdown namesrv
bash mqshutdown broker
7、测试
# 发送消息
cd /opt/rocketmq-4.9.4/bin/
export NAMESRV_ADDR=localhost:9876
bash bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 接收消息
export NAMESRV_ADDR=localhost:9876
bash bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer