安装条件


  • 64位操作系统,建议使用 Linux / Unix / Mac;
  • 64位JDK 1.8+;
  • Maven 3.2.x

下载和构建


从 https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip 下载 4.2.0 的源码版本,执行以下命令来解压4.2.0源码版本并构建二进制文件。


unzip rocketmq-all-4.2.0-source-release.zip
cd rocketmq-all-4.2.0/
mvn -Prelease-all -DskipTests clean install -U


构建成功后 进入到目录 :


cd distribution/target/apache-rocketmq


启动 NameServer



nohup sh bin/mqnamesrv &
##查看日志
tail -f ~/logs/rocketmqlogs/namesrv.log


PS:启动过程可能会因为内存不够而出错,将启动参数的内存配置修改一下 vim bin/runserver.sh

nvalid initial heap size: -Xms4g
The specified size exceeds the maximum representable size.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit

启动 Broker



nohup sh bin/mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log


PS:启动过程可能会因为内存不够而出错,将启动参数的内存配置修改一下 bin/runbroker.sh

Invalid initial heap size: -Xms8g
The specified size exceeds the maximum representable size.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

发送和接收消息


在发送/接收消息之前,我们需要告诉客户名称服务器的位置。RocketMQ 提供了多种方法来实现这一点。为了简单起见,我们使用环境变量NAMESRV_ADDR

发送消息


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


关闭服务器



sh bin/mqshutdown broker //停止 broker
sh bin/mqshutdown namesrv //停止 nameserver


常用命令


上面几个启动和关闭 name server 和 broker 的就不再说了,

  • 查看集群情况 ./mqadmin clusterList -n 127.0.0.1:9876
  • 查看 broker 状态 ./mqadmin brokerStatus -n 127.0.0.1:9876 -b
    172.20.1.138:10911 (注意换成你的 broker 地址)
  • 查看 topic 列表 ./mqadmin topicList -n 127.0.0.1:9876
  • 查看 topic 状态 ./mqadmin topicStatus -n 127.0.0.1:9876 -t MyTopic
    (换成你想查询的 topic)
  • 查看 topic 路由 ./mqadmin topicRoute -n 127.0.0.1:9876 -t MyTopic