Linux系统安装配置
64位操作系统,推荐 Linux/Unix/macOS
64位 JDK 1.8+ Maven3.0
yum 安装jdk8 yum 安装maven
1.下载安装Apache RocketMQ
RocketMQ 的安装包分为两种,二进制包和源码包。 点击这里 下载 Apache RocketMQ 5.1.3的源码包。你也可以从这里 下载到二进制包。二进制包是已经编译完成后可以直接运行的,源码包是需要编译后运行的。
https://dist.apache.org/repos/dist/release/rocketmq/5.1.3/rocketmq-all-5.1.3-source-release.zip
https://dist.apache.org/repos/dist/release/rocketmq/5.1.3/rocketmq-all-5.1.3-bin-release.zip
1.1手动编译
这里以在Linux环境下利用社区5.1.3的源码包为例,介绍RocketMQ安装过程。
解压5.1.3的源码包并编译构建二进制可执行文件
$ unzip rocketmq-all-5.1.3-source-release.zip
$ cd rocketmq-all-5.1.3-source-release/
$ mvn -Prelease-all -DskipTests -Dspotbugs.skip=true clean install -U
$ cd distribution/target/rocketmq-5.1.3/rocketmq-5.1.3
1.2直接使用编译好的-bin-zip包
启动NameServer
*我们可以在namesrv.log 中看到 'The Name Server boot success..', 表示NameServer 已成功启动。
启动Broker+Proxy
NameServer成功启动后,我们启动Broker和Proxy,5.x 版本下我们建议使用 Local 模式部署,即 Broker 和 Proxy 同进程部署。5.x 版本也支持 Broker 和 Proxy 分离部署以实现更灵活的集群能力。详情参考部署教程。
NameServer成功启动后,我们启动Broker和Proxy,
5.x 版本下我们建议使用 Local 模式部署,
即 Broker 和 Proxy 同进程部署。
5.x 版本也支持 Broker 和 Proxy 分离部署以实现更灵活的集群能力。
详情参考部署教程。
*我们可以在 proxy.log 中看到“The broker[brokerName,ip:port] boot success..”,这表明 broker 已成功启动。
4. 工具测试消息收发
在进行工具测试消息收发之前,我们需要告诉客户端NameServer的地址,RocketMQ有多种方式在客户端中设置NameServer地址,这里我们利用环境变量NAMESRV_ADDR
$ export NAMESRV_ADDR=localhost:9876
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
SendResult [sendStatus=SEND_OK, msgId= ...
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
ConsumeMessageThread_%d Receive New Messages: [MessageExt...
5. SDK测试消息收发
工具测试完成后,我们可以尝试使用 SDK 收发消息。这里以 Java SDK 为例介绍一下消息收发过程,可以从 rocketmq-clients 中参阅更多细节。
-
在IDEA中创建一个Java工程。
-
在 pom.xml 文件中添加以下依赖引入Java依赖库,将
rocketmq-client-java-version
替换成 最新的版本. -
通过mqadmin创建 Topic。
-
在已创建的Java工程中,创建发送普通消息程序并运行,示例代码如下:
-
在已创建的Java工程中,创建订阅普通消息程序并运行。Apache RocketMQ 支持SimpleConsumer和PushConsumer两种消费者类型,您可以选择以下任意一种方式订阅消息。
6. 关闭服务器
$ sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker with proxy enable OK(36695)
$ sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK
阿里云云端RocketMQ:
https://github.com/apache/rocketmq/blob/master/docs/cn/RocketMQ_Example.md
领域模型概述 | RocketMQ (apache.org)