一、准备工作
从RockitMQ官网下载 | RocketMQ下载最新的release包。我这里下载的版本是v5.2.0
解压到本地目录,bin
目录下存放可运行的脚本。
二、RocketMQ基本结构
在动手开发之前,我们需要了解一下RocketMQ的基本结构
如上图所示,一个正常工作的RocketMQ包括四个部分。
- NameServer :基于高可用设计产生的,用于服务发现和路由。正式应用时通常采用集群部署。
- Broker:实现队列机制,负责消息存储和转发。正式应用时也采用集群部署。
- Producer:消息生产者,生成消息并发送到RocketMQ中,生产者通常是我们自己实现的应用程序。
- Consumer:消息消费者,从RocketMQ中接收消息并进行业务处理。这部分也通常是我们自己实现的。
这里并不打算深入讲解RocketMQ的架构和特性,因为我觉得,针对于初学者,太早地深入知识细节,会让人感到迷惘,学习起来吃力。为了避免浪费时间,以上的知识己经能满足本文后面要实践的内容。随着实践我们会慢慢加深对RocketMQ的理解,再回过头来一点点深入了解。
以上的知识都来源于RocketMQ官网的参考文档,需要更多细节的同学, 可以打开
https://rocketmq.apache.org/docs/quickStart/01quickstart/ 自行阅读。
三、Windows环境下启动最小应用
从上面的图可以了解到,RocketMQ自身分为 NameServer 和 Broker 两个部分,因此,用作本机开发调试用的最小应用,应该分别启动一个NameServer和一个Broker节点。
RocketMQ默认提供了 windows环境 和 linux环境 下的启动脚本。脚本位于bin
目录下,windows的脚本以.cmd
为文件名后缀,linux环境的脚本以.sh
为文件名后缀。
第一步、配置JAVA_HOME 和 ROCKETMQ_HOME 环境变量
JAVA_HOME 的配置已经是老生常谈,这里不再赘述,不懂的话请自行百度。
ROCKETMQ_HOME 应指向解压后的Readme.md
文件所在目录。
第二步,启动 NameServer
bin
目录下直接双击mqnamesrv.cmd
脚本启动NameServer
看到 The Name Server boot success
字样,表示NameServer己启动成功。
windows环境下,可以在目录
%USERPROFILE%\logs\rocketmqlogs
下找到NameServer的启动日志。文件名为namesrv.log
。
第三步,启动 Broker
Broker的启动脚本是mqbroker.cmd,
脚本启动之前要指定 NameServer的地址。
启动方式一:修改mqbroker.cmd
脚本,增加NameServer的地址。
rem 添加此行,指定NameServer的地址
set "NAMESRV_ADDR=localhost:9876"rem 在此行之前添加NameServer的地址
call "%ROCKETMQ_HOME%\bin\runbroker.cmd" org.apache.rocketmq.broker.BrokerStartup %*
双击mqbroker.cmd脚本启动Broker。
启动方式二:不修改mqbroker.cmd脚本,直接使用cmd命令启动
先进入rocketmq安装目录的bin目录下面,然后执行下面命令启动broker
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
看到
The broker ... boot success
字样,表示Broker己启动成功,与NameServer类似,可以在目录
%USERPROFILE%\logs\rocketmqlogs
下找到Broker的启动日志。文件名为broker.log
。
四、使用RocketMQ仪表盘
RocketMQ Dashboard是一个Web界面应用程序,用于管理和监控Apache RocketMQ消息中间件的运行状态。RocketMQ Dashboard提供了一系列的监控指标和管理功能,包括Broker配置、集群概览、主题状态、消费者状态、生产者状态和消息跟踪等。
https://github.com/apache/rocketmq-dashboard直接下载源码到本地部署
用idea打开,修改配置文件application.yml
rocketmq:config:namesrvAddrs:- 192.168.10.100:9876- 192.168.10.101:9876
namesrvAddrs地址就是服务的地址,192.168.10.100是我虚拟主机的ip,如果是window环境下,改成localhost或者127.0.0.1
然后启动程序,访问http://localhost:8080/#/