RocketMQ4.x本地源码部署

安装前提条件(推荐)

64bit OS/Linux/Unix/Mac/(Windows不兼容)

64bit JDK 1.8+

快速开始

本快速入门指南是在本地计算机上设置RocketMQ消息传递系统以发送和接收消息的详细说明。

下载安装包

1
wget http://mirror.bit.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-source-release.zip

解压并编译

1
2
3
4
unzip rocketmq-all-4.4.0-source-release.zip
cd rocketmq-all-4.4.0/
mvn -Prelease-all -DskipTests clean install -U
cd distribution/target/apache-rocketmq

最终路径 distribution/target/apache-rocketmq

启动nameServer

1
nohup sh bin/mqnamesrv &

查看日志

1
tail -f nohup.out

结尾为 The Name Server boot success. serializeType=JSON 说明启动成功

1
2
3
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

部署问题

Please set the JAVA_HOME variable in your environment, We need java(x64)

解决: 本地需要配置 JAVA_HOME 环境变量

1
2
echo $JAVA_HOME
/usr/local/software/jdk8

Linux系统jdk配置见 linux下使用wget下载jdk8

1
2
3
4
5
6
export JAVA_HOME=/usr/local/software/jdk8
export MAVEN_HOME=/usr/local/software/apache-maven-3.3.9
export JAVA_BIN=/usr/local/software/jdk8
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME MAVEN_HOME JAVA_BIN PATH CLASSPATH

启动broker

-n 指定 nameserver 地址, nameserver服务端口号为 9876, broker 默认端口号 10911

1
nohup sh bin/mqbroker -n localhost:9876 &

RocketMQ的broker启动失败解决

进入 bin 目录 apache-rocketmq/bin

修改runbroker.sh

1
vim runbroker.sh

将第一个JAVA_OPT改成

1
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

修改runserver.sh

1
vim runserver.sh

将第一个JAVA_OPT改成

1
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

关闭 broker nameserver 执行的命令

1
2
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv

使用jps查看进程

1
jps

验证是否成功

1
2
3
4
5
6
7
8
# 设置名称服务地址
export NAMESRV_ADDR=localhost:9876

# 投递消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

# 消费消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer