分布式消息队列 RocketMQ 入门 —— 安装以及快速入门

2,487 阅读2分钟
原文链接: www.iocoder.cn
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.54tianzhisheng.cn/2018/02/06/RocketMQ-install/ 「zhisheng」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

安装条件

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

下载和构建

www.apache.org/dyn/closer.… 下载 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

构建成功如下:

2018-02-07_14-04-25

进入到目录 :

cd distribution/target/apache-rocketmq

启动 NameServer

nohup sh bin/mqnamesrv &

tail -f ~/logs/rocketmqlogs/namesrv.log

结果如下就代表启动成功了:

rocketmq01

启动 Broker

nohup sh bin/mqbroker -n localhost:9876 &

tail -f ~/logs/rocketmqlogs/broker.log

结果如下就代表启动成功了:从日志中可以看到 broker 注册到了 nameserver 上了(localhost:9876)

rocketmq02

发送和接收消息

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

发送消息

export NAMESRV_ADDR=localhost:9876

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

rocketmq03

接收消息

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

rocketmq04

关闭服务器

sh bin/mqshutdown broker	//停止 broker

sh bin/mqshutdown namesrv	//停止 nameserver

关闭成功后如下:

rocketmq05

常用命令

上面几个启动和关闭 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

总结

本文是 RocketMQ 的安装及快速入门案例。