消息中间件 RocketMQ 高级功能和源码分析(三)
一、 消息中间件 RocketMQ 源码分析:RocketMQ 源码结构介绍和导入。
1、环境搭建:依赖工具
- JDK :1.8+
- Maven
- IntelliJ IDEA
2、源码拉取
从官方仓库 https://github.com/apache/rocketmq clone
或者download
源码。
3、源码目录结构:
-
broker: broker 模块(broke 启动进程)
-
client :消息客户端,包含消息生产者、消息消费者相关类
-
common :公共包
-
dev :开发者信息(非源代码)
-
distribution :部署实例文件夹(非源代码)
-
example: RocketMQ 例代码
-
filter :消息过滤相关基础类
-
filtersrv:消息过滤服务器实现相关类(Filter 启动进程)
-
logappender:日志实现相关类
-
namesrv:NameServer 实现相关类(NameServer 启动进程)
-
openmessageing:消息开放标准
-
remoting:远程通信模块,给予 Netty
-
srcutil:服务工具类
-
store:消息存储实现相关类
-
style:checkstyle 相关实现
-
test:测试相关类
-
tools:工具类,监控命令相关实现类
4、源码 导入 IDEA
Idea --> File --> Open --> RocketMQ 源码目录 --> OK。
执行安装:
idea --> 右边 Maven --> `m` (Execute Maven Goal)
Working directory: ( 你的 rocketmq 源码 pom.xml 所在目录 )
Command line: ( clean install -Dmaven.test.skip=true )
--> Excute
clean install -Dmaven.test.skip=true
二、 消息中间件 RocketMQ 源码分析:RocketMQ 源码环境调试。
1、调试
在 RocketMQ 源码 根目录下,创建conf
配置文件夹,从 RocketMQ 源码 的 distribution
目录下的 conf
目录里,拷贝broker.conf
和logback_broker.xml
和logback_namesrv.xml
到 新创建的 conf
目录下。
2、启动 NameServer
- 1)展开 namesrv 模块,右键 NamesrvStartup.java
- 2)配置 ROCKETMQ_HOME
idea --> Edit Configurations... --> Environment variables :
点击 `+` 添加
Name : ( ROCKETMQ_HOME )
Value : ( 你的 rocketmq 源码路径 )
-
3)重新启动 NameServer
控制台打印结果
The Name Server boot success. serializeType=JSON
3、启动 Broker
3.1 broker.conf
配置文件内容
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
# namesrvAddr 地址
namesrvAddr=127.0.0.1:9876
# 零晨4点清理数据
deleteWhen = 04
fileReservedTime = 48
# 异步刷盘
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 自动创建主题
autoCreateTopicEnable=true
# 存储路径
storePathRootDir=D:\\RocketMQ\\data\\rocketmq\\dataDir
# commitLog路径
storePathCommitLog=D:\\RocketMQ\\data\\rocketmq\\dataDir\\commitlog
# 消息队列存储路径
storePathConsumeQueue=D:\\RocketMQ\\data\\rocketmq\\dataDir\\consumequeue
# 消息索引存储路径
storePathIndex=D:\\RocketMQ\\data\\rocketmq\\dataDir\\index
# checkpoint文件路径
storeCheckpoint=D:\\RocketMQ\\data\\rocketmq\\dataDir\\checkpoint
# abort文件存储路径
abortFile=D:\\RocketMQ\\data\\rocketmq\\dataDir\\abort
3.2 创建数据文件夹dataDir
3.3 启动BrokerStartup
,配置broker.conf
和ROCKETMQ_HOME
1)进入 broker
模块,尝试启动 BrokerStartup
。启动不成功时,也需要配置 ROCKETMQ_HOME
。
2)配置 ROCKETMQ_HOME
。
idea --> Edit Configurations... --> Environment variables :
点击 `+` 添加
Name : ( ROCKETMQ_HOME )
Value : ( 你的 rocketmq 源码路径 )
3) 配置broker.conf
路径。
idea --> Edit Configurations... --> Application --> BrokerStartup
--> Program arguments: ( `broker.conf` 路径 )
4)进入 broker
模块,启动 BrokerStartup
4、发送消息
- 1)进入 example 模块的
org.apache.rocketmq.example.quickstart
- 2)指定 Namesrv 地址
DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
producer.setNamesrvAddr("127.0.0.1:9876");
- 3)运行
main
方法,发送消息
5、消费消息
- 1)进入 example 模块的
org.apache.rocketmq.example.quickstart
- 2)指定 Namesrv 地址
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name_4");
consumer.setNamesrvAddr("127.0.0.1:9876");
- 3)运行
main
方法,消费消息
上一节关联链接请点击:
# 消息中间件 RocketMQ 高级功能和源码分析(二)