# RocketMQ源码
**Repository Path**: pounds018/RocketMQ-source-reading
## Basic Information
- **Project Name**: RocketMQ源码
- **Description**: RocketMQ源码阅读
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-09-28
- **Last Updated**: 2021-11-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
RocketMQ源码阅读
## 环境搭建:
1. 在源码文件夹根目录中创建ROCKETMQ_HOME文件,文件中再创建 `conf`, `store`, `logs`三个文件.
2. 将源码中`distribution`模块conf文件夹下面的 `broker.conf`, `logback_broker.xml`, `logback_namesrv.xml`三个文件复制到上一步创建出来的`conf`文件夹中.
3. 配置`broker.conf`文件:
```properties
brokerClusterName=DefaultCluster
brokerName=broker1
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=SYNC_FLUSH
brokerIP1=127.0.0.1
listenPort=10911
namesrvAddr=127.0.0.1:9876
autoCreateTopicEnable=true
# 配置存储位置
storePathRootDir = E:\\source\\rocketmq\\ROCKETMQ_HOME/store
# commitlog 存储路径
storePathCommitLog = E:\\source\\rocketmq\\ROCKETMQ_HOME/store/commitlog
# 消费队列存储路径
storePathConsumeQueue = E:\\source\\rocketmq\\ROCKETMQ_HOME/store/consumequeue
# 消息索引存储路径
storePathIndex = E:\\source\\rocketmq\\ROCKETMQ_HOME/store/index
# checkpoint文件存储路径
storeCheckPoint = E:\\source\\rocketmq\\ROCKETMQ_HOME/store/checkpoint
# abort文件存储路径
abortFile = E:\\source\\rocketmq\\ROCKETMQ_HOME/store/abort
```
> 1. 个人习惯将相关内容存放在非c盘里面,所以修改了 RocketMQ数据存储路径
> 2. `E:\\source\\rocketmq\\ROCKETMQ_HOME` 根据自己想要设置的位置修改
4. 修改两个日志配置文件:
```xml
```
官方给出的日志配置文件是将日志存放与当前用户的根目录下面, 在`configuration`标签内添加上述标签就可以修改日志的存放路径.
5. 添加`ROCKETMQ_HOME`环境变量
在broker和namesrv启动的时候,都回去获取这个变量,所以需要在系统中添加这个变量.
添加变量的方式有很多种,idea启动设置中也可以,系统设置里面也可以,自行选择
6. 指定broker的配置文件:
在idea启动参数设置中,添加`-c ./ROCKETMQ_HOME/conf/broker.conf`这一句

> 这一句参数设置很重要, 如果不添加这一句的话, 之前配置的broker设置都是无效的,broker全部采用默认设置.
## 启动程序:
启动`namesrvStartUp`,出现下图表示成功:

启动`brokerStartUp`, 出现下图表示启动成功

## 搭建recketmq-console:
官网下载代码,改下配置就ok.
`application.properties`: 修改圈起来的地方

`logback.xml`: 同样添加property标签
```xml
```