RocketMQ源码剖析-环境搭建
源码拉取
Github访问慢,同步Github代码到Gitee仓库。官方地址: GitHub仓库快速导入Gitee及同步更新
目录结构
目录 | 说明 |
---|---|
acl | 访问控制模块 |
broker: | broker 模块(broke 启动进程) |
client | 消息客户端,包含消息生产者、消息消费者相关类 |
common | 公共包 |
dev | 开发者信息(非源代码) |
distribution | 部署实例文件夹(非源代码) |
example | RocketMQ 例代码 |
filter | 消息过滤相关基础类 |
logappender | 日志实现相关类 |
namesrv | NameServer实现相关类(NameServer启动进程) |
openmessageing | 消息开放标准 |
remoting | 远程通信模块,基于Netty |
srcutil | 服务工具类 |
store | 消息存储实现相关类 |
style | checkstyle相关实现 |
test | 测试相关类 |
tools | 工具类,监控命令相关实现类 |
导入项目
导入IDEA ,执行命令:clean install -Dmaven.test.skip=true
启动调试
-
创建 conf 配置文件夹,从 distribution 拷贝 broker.conf 和 logback_broker.xml 和 logback_namesrv.xml
-
启动NameServer
NameServer启动类:NamesrvStartup
添加启动环境
打印如下日志即代表启动成功
- 启动broker
- 在项目根目录下创建数据文件夹 dataDir
- 修改conf/broker.conf配置文件,添加如下配置
# namesrvAddr地址
namesrvAddr=127.0.0.1:9876
# 启用自动创建主题
autoCreateTopicEnable=true
# 存储路径
storePathRootDir=dataDir/
# commitLog路径
storePathCommitLog=dataDir/commitlog
# 消息队列存储路径
storePathConsumeQueue=dataDir/consumequeue
# 消息索引存储路径
storePathIndex=dataDir/index
# checkpoint文件路径
storeCheckpoint=dataDir/checkpoint
# abort文件存储路径
abortFile=dataDir/abort
-
添加启动环境
-
打印如下日志代表启动成功
发送消息
- 进入example模块的
org.apache.rocketmq.example.quickstart.Producer
- 设置NameSrv
producer.setNamesrvAddr("127.0.0.1:9876");
- 执行Main方法 发送消息
消费消息
- 进入example模块的
org.apache.rocketmq.example.quickstart.Consumer
- 设置NameSrv
- 执行Main方法 消费消息