环境 idea:IntelliJ IDEA 2022.1.2 (Ultimate Edition) 操作系统:win10 rocketmq 版本:4.9.5 (当时从github拉取的最新代码) 前言 rocketmq在idea中开发的配置方式,早期的版本与现在版本配置参数是否完
环境
- idea: IntelliJ IDEA 2022.1.2 (Ultimate Edition)
- 操作系统:win10
- rocketmq 版本:4.9.5 (当时从github拉取的最新代码)
前言
rocketmq在idea中开发的配置方式,早期的版本与现在版本配置参数是否完全一样,我也记不太清了,下文以4.9.5版本进行说明。
idea用的也是最新版本,可能与2021之前的版本在环境变量配置的界面也有点不太一样。
代码与工程准备
下载代码:
git clone https://github.com/apache/rocketmq.git默认拉取下来是master分支,可以切换到develop分支。如果需要提交pr,请再从develop拉取自己的本地分支。
用idea打开代码。
模块说明
主要需要在idea启动中运行namesrv和broker两个模块,这两个模块下有相关的启动函数。
运行namesrv
启动类路径:
org.apache.rocketmq.namesrv.NamesrvStartup启动前设置相关环境变量,有如下两种方式:
1. 硬编码
System.setProperty(MixAll.ROCKETMQ_HOME_PROPERTY, "G:\\java\\github\\rocketmq\\distribution");注意指定的目录是在distrbution模块下:
2. idea设置
这两种随便哪种即可。
配置完成,直接运行即可,启动成功如下:
运行broker
启动类路径:
org.apache.rocketmq.broker.BrokerStartup配置环境变量,配置方式与上面namesrv一模一样。
配置进程参数,如下指定配置文件:
注意指定broker配置文件。
启动,成功如下:
其它问题
多个slf4j实现
启动broker遇到如下错误:
分析了下,冲突的地方是在dledger的依赖里:
排除它,问题解决:
未指定broker配置文件
前面说明了启动broker配置进程参数指定配置文件,示例如下:
-c G:\java\github\rocketmq\distribution\conf\broker.conf如果忘了指定,启动后,控制台日志显示可能如下:
broker名称不是配置文件里的名称,可能是主机名,windows、mac、linux这里显示可能有些区别。
如果发现自己的配置文件的配置不生效,总有些奇怪现象,比如禁止自动创建topic,配置不生效等, 就查看启动日志检查下是不是这里的问题。