你好,我是程序员Alan,很高兴遇见你。
一、RocketMQ目录结构
在正式开始搭建调试环境之前,我们先了解一下RockeMQ源码的整体架构。
这是因为掌握了整体架构,可以让我们迅速了解各个方面的特性,并且可以方便我们后续快速定位功能模块对应的代码文件。话不多说,我们开始看RocketMQ目录结构。
acl: 权限控制。可以给话题指定权限,只有拥有权限的消费者才可以进行消费。
broker: RocketMQ 的 Broker 相关代码,用来启动 Broker 进程。Broker 就是用来收客户端发的消息、存储消息传、递消息给消费端的组件。
client:RocketMQ 的 Producer、Consumer 这些客户端的代码,用来生产消息、消费消息。
common:公共模块。
distribution:用来部署 RocketMQ 的,比如 bin 目录 ,conf 目录。
example: RocketMQ 的用例。
filter:RocketMQ 过滤器。
namesvr:NameServer 的源码。NameServer 就是所有 Broker 都需要注册的地方,注册中心。
remoting:RocketMQ 的远程网络通信模块。
srvutil:工具类。
store:消息存储。
style:代码检查。
tools:命令行监控工具相关。
二、获取RocketMQ源码
源码地址:https://github.com/apache/roc...
我下载的是5.0.0版本,你也可以在github下载其他版本。
如果下载遇到困难,可以留言或者私信我。
三、导入源码
代码下载解压之后,使用IDEA工具导入。
四、下载依赖
先确认Maven目录地址,再刷新,等待依赖下载完成。
五、启动RocketMQ的NameServer
5.1 配置NameServer启动参数
5.1.1 Edit Configurations,配置 ROCKETMQ_HOME 环境变量
5.2 拷贝配置文件
Value 的文件夹是用来部署 RocketMQ 的,里面包括 bin 目录 ,conf 目录,store目录。
我们首先创建一个文件夹,并创建三个子文件夹,分别是 bin ,conf ,store。
文件夹都创建好之后,我们把RocketMQ自带的配置文件拷贝过来。
需要拷贝的文件夹是源码目录 distribution 目录中的 broker.conf、logback_namesrv.xml、logback_broker.xml。
5.3 修改 logback 日志配置文件
打开 logback_namesrv.xml、logback_broker.xml, ${user.home} 全局替换为之前配置的 ROCKETMQ_HOME 目录
5.4 修改broker配置文件
打开 broker.conf 文件,把下面的配置拷贝进去。
namesrvAddr=127.0.0.1:9876
brokerIP1=127.0.0.1
storePathRootDir=D:/Project/ROCKETMQ_HOME/store
storePathCommitLog=D:/Project/ROCKETMQ_HOME/store/commitlog
storePathConsumeQueue=D:/Project/ROCKETMQ_HOME/store/consumequeue
storePathIndex=D:/Project/ROCKETMQ_HOME/store/index
storeCheckpoint=D:/Project/ROCKETMQ_HOME/store/checkpoint
abortFile=D:/Project/ROCKETMQ_HOME/store/abort
5.5 启动NameServer
六、启动RocketMQ的Broker
6.1 配置Broker的启动参数
6.2 启动Broker
6.3 查看启动日志
打开 ROCKETMQ_HOME /logs/rocketmqlogs 目录下的 broker.log 或者 namesrv.log 文件看启动的详细日志。
七、测试生产消息
7.1 我们可以直接使用源码自带的示例来做测试。
7.2 打开 Producer.java, 设置 name server addresses
7.3 启动 Producer
7.4 成功发送消息
八、测试消费消息
我们继续使用自带的测试用例。
8.2 打开 Consumer.java, 设置 name server addresses
8.3 启动消费者
8.4 成功消费消息
九、使用RocketMQ Dashboard 查看 RocketMQ运行情况
站在巨人的肩膀上
- 悟空聊架构
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。