文章目录
- 1.下载源码
- 2.配置启动参数
- 2.1添加NameServer启动类
- 2.2 配置NameServer启动参数
- 3.创建运行所需目录和文件
- 3.1创建文件夹
- 4.启动NameServer
1.下载源码
git命令下载源码:
git clone git@github.com:apache/rocketmq.git
配置Maven相关环境,使用IDEA打开该源码,并等待加载完成,这一步骤就不详细描述了。
2.配置启动参数
2.1添加NameServer启动类
在打开RocketMQ项目的IDEA中,找到如下图:
点击,按照如下图操作,加载NameServer的启动类NamesrvStartup:
然后在该弹出框中选择要运行的模块:
2.2 配置NameServer启动参数
NameServer启动的时候需要一个ROCKETMQ_HOME
的环境变量,这个变量的值就是自己想要设置的RocketMQ运行目录了,不要跟下载的RocketMQ源码目录一样,我设置为D:\dev\rocketmq_workspace
。可以在操作系统中配置,IDEA会默认加载进去。也可以在IDEA中直接添加:
配置好之后,点击Apply和OK按钮即可,NameServer启动的时候将会使用该变量。
其实在上面的界面中,我们可以给一个类配置很多东西,包括他启动时候的JVM虚拟机的参数(VM options),包括我们要传递给他的main()方法的参数(Program options),这都是很实用的。而我们目前要配置的只是Environment Variables。
3.创建运行所需目录和文件
由于NameServer运行时需要一些固定的目录和文件,我们在上面设置的ROCKETMQ_HOME
的目录中按照如下操作
3.1创建文件夹
- 创建所需目录
创建conf
,logs
,store
三个文件夹,然后我们把RocketMQ源码目录中的distrbution\bin
目录下的broker.conf
、logback_namesvr.xml
两个配置文件拷贝到刚才新建的conf目录中去。 - 修改
logback_namesvr.xml
文件
打开之后,将其中的${user.home}全部查找替换为你在上面设置的RocketMQ运行目录就可以了(注意需将反斜杠"“改成正斜杠”/")。 - 修改broker.conf文件
打开之后,按照如下配置对应修改即可:
# 以下是原始配置,不必改动
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 这是nameserver的启动地址,broker会基于该nameserver进行通信
namesrvAddr=127.0.0.1:9876
# 这是存储路径,你设置为你的rocketmq运行目录的store子目录
storePathRootDir=D:/dev/rocketmq_workspace/store
# 这是commitLog的存储路径
storePathCommitLog=D:/dev/rocketmq_workspace/store/commitlog
# consume queue文件的存储路径
storePathConsumeQueue=D:/dev/rocketmq_workspace/store/consumequeue
# 消息索引文件的存储路径
storePathIndex=D:/dev/rocketmq_workspace/store/index
# checkpoint文件的存储路径
storeCheckpoint=D:/dev/rocketmq_workspace/store/checkpoint
# abort文件的存储路径
abortFile=D:/dev/rocketmq_workspace/store/abort
4.启动NameServer
按照上面的步骤修改完毕之后,就可以启动NameServer了,右击NamesrvStartup类,执行main方法:
NameServer会自动查找上面配置的ROCKETMQ_HOME
变量,读取conf里的配置文件,所有的日志都会打印在logs目录里,然后数据都会写在store目录里,当执行成功之后,控制台将打印:
The Name Server boot success. serializeType=JSON
以后再运行NameServer的时候,直接去这里进行debug即可: