本地部署 RocketMQ

这一节介绍如何快速部署一个单 Master RocketMQ 集群,并完成简单的消息收发。

本地部署 RocketMQ - 图1系统要求

  1. 64位操作系统,推荐 Linux/Unix/macOS
  2. 64位 JDK 1.8+

1.下载安装Apache RocketMQ

本地部署 RocketMQ - 图2RocketMQ下载

RocketMQ 的安装包分为两种,二进制包和源码包。

点击这里 下载 Apache RocketMQ 4.9.4的源码包。你也可以从这里 下载到二进制包。二进制包是已经编译完成后可以直接运行的,源码包是需要编译后运行的,

这里以在Linux环境为例,介绍RocketMQ安装过程。

解压下载的源码包并编译构建二进制可执行文件

  1. $ mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U
  2. $ cd distribution/target/rocketmq-4.9.4/rocketmq-4.9.4

2. 启动NameServer

安装完RocketMQ包后,我们启动NameServer

  1. ### 启动namesrv
  2. $ nohup sh bin/mqnamesrv &
  3. ### 验证namesrv是否启动成功
  4. $ tail -f ~/logs/rocketmqlogs/namesrv.log
  5. The Name Server boot success...

本地部署 RocketMQ - 图3信息

我们可以在namesrv.log 中看到 ‘The Name Server boot success..’, 表示NameServer 已成功启动。

3. 启动Broker

NameServer成功启动后,我们启动Broker

  1. ### 先启动broker
  2. $ nohup sh bin/mqbroker -n localhost:9876 &
  3. ### 验证broker是否启动成功, 比如, broker的ip是192.168.1.2 然后名字是broker-a
  4. $ tail -f ~/logs/rocketmqlogs/Broker.log
  5. The broker[broker-a,192.169.1.2:10911] boot success...

本地部署 RocketMQ - 图4信息

我们可以在 Broker.log 中看到“The broker[brokerName,ip:port] boot success..”,这表明 broker 已成功启动。

本地部署 RocketMQ - 图5备注

至此,一个单Master的RocketMQ集群已经部署起来了,我们可以利用脚本进行简单的消息收发。

4. 消息收发

在进行消息收发之前,我们需要告诉客户端NameServer的地址,RocketMQ有多种方式在客户端中设置NameServer地址,这里我们利用环境变量NAMESRV_ADDR

  1. $ export NAMESRV_ADDR=localhost:9876
  2. $ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
  3. SendResult [sendStatus=SEND_OK, msgId= ...
  4. $ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
  5. ConsumeMessageThread_%d Receive New Messages: [MessageExt...

5. 关闭服务器

完成实验后,我们可以通过以下方式关闭服务

  1. $ sh bin/mqshutdown broker
  2. The mqbroker(36695) is running...
  3. Send shutdown request to mqbroker(36695) OK
  4. $ sh bin/mqshutdown namesrv
  5. The mqnamesrv(36664) is running...
  6. Send shutdown request to mqnamesrv(36664) OK