官方网站:https://rocketmq.apache.org/zh
1.下载安装
本教程RocketMQ为5.1.4版本,JDK1.8。
系统要求
- 64位操作系统,推荐 Linux/Unix/macOS。(如果本地是windows系统,推荐使用虚拟机Oracle VM VirtualBox)
- 64位 JDK 1.8+ (配置好环境变量)
RocketMQ下载地址:https://rocketmq.apache.org/zh/download
- Binary二进制包,可直接运行。
- Source源码包,需要编译构建成二进制可执行文件后方可运行。(需要maven环境)
解压文件到本地,mac、windows、linux都是一个包。
2.启动NameServer
命名服务,充当注册中心和路由管理
- 启动namesrv,进入rocketmq-all-5.1.4-bin-release解压目录,执行以下命令
nohup sh bin/mqnamesrv &
执行后会返回个进程ID
- 验证namesrv是否启动成功
在namesrv.log中能看到“The Name Server boot success.”,表示NameServer 已成功启动。
cat ~/logs/rocketmqlogs/namesrv.log |grep "The Name Server boot success."
3.启动Broker+Proxy
NameServer成功启动后,我们启动Broker和Proxy。5.x 版本下建议使用 Local 模式部署,即 Broker 和 Proxy 同进程部署。使用下面命令可以同时启动Broker+Proxy。
nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &
4. 命令窗口测试消息收发
在进行工具测试消息收发之前,我们需要告诉客户端NameServer的地址,RocketMQ有多种方式在客户端中设置NameServer地址,这里我们利用环境变量NAMESRV_ADDR
。在启动消费者或生产者时,默认根据此环境变量来获取NameServer。
4.1 配置临时环境变量。
下面命令只是
临时的环境变量,只在当前命令窗口生效,所以如果要在两个命令窗口中分别启动生产者与消费者,则两个窗口都需要先执行配置环境变量命令。
export NAMESRV_ADDR=localhost:9876
4.2 生产者发送消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
(可以在Source源码包找到org.apache.rocketmq.example.quickstart.Producer)
上面这条启动生产者命令会默认发送一些测试数据到MQ中,消息发送完毕进程自动结束。
4.3 消费者消费消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
(可以在Source源码包找到org.apache.rocketmq.example.quickstart.Consumer)
上面这条名称启动消费者,消费者启动后开始监听消息,进程不会自动结束。
5. SDK测试消息收发
Apache RocketMQ 客户端:
https://github.com/apache/rocketmq-clients/blob/master/README-CN.md
为 Apache RocketMQ 提供包含 Java,C++,C#,Golang,JavaScript,Rust 在内的所有主流编程语言的云原生的,健壮的客户端解决方案。