15分钟搭建RocketMQ源码调试环境
下载源码
下载源码,github页面选择(rocketmq-all-4.7.1)版本压缩包,https://github.com/apache/rocketmq/tags
导入IDEA
1. 使用IDEA打开工程后,修改pom.xml文件中无关内容
1. 去除maven-gpg-plugin、maven-failsafe-plugin插件
3. 使用IDEA的maven编译整个项目,(clean compile install),记得Skip Tests
新建文件夹,存放配置、日志、消息体等内容
1. 新建一个文件夹,如1local_ROCKETMQ_HOME
2. 1local_ROCKETMQ_HOME路径下创建3个文件夹(conf,logs,store)
3. 将工程中distribution/conf目录下的3个文件(logback_namesrv.xml,logback_broker.xml,broker.conf),复制到前面创建的conf目录下
4. 修改broker.conf,增加【附录1】中的配置,注意替换路径
5. 修改logback_namesrv.xml和logback_broker.xml中的${user.home}参数,替换为1local_ROCKETMQ_HOME绝对路径
6. 修改org.apache.rocketmq.common.namesrv.NamesrvConfig,rocketmqHome变量,原因是动态获取配置,现改为1local_ROCKETMQ_HOME绝对路径
7. 修改org.apache.rocketmq.common.BrokerConfig变量,原因是动态获取配置,现改为1local_ROCKETMQ_HOME绝对路径
应用启动
1. NameServer启动
1. NamesrvStartup main方法启动即可
2. 控制台打印如下日志代表启动成功(The Name Server boot success. serializeType=JSON)
3. 1local_ROCKETMQ_HOME/logs/rocketmqlogs可看到详细日志
2. BrokerStartup启动
1. BrokerStartup main方法启动即可(启动时需指定conf文件 -c D:\opensource_code\rocketmq\1local_ROCKETMQ_HOME\conf\broker.conf
)
2. 控制台打印如下日志代表启动成功(The broker[broker-a, 你的ip:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876
)
3. 1local_ROCKETMQ_HOME/logs/rocketmqlogs可看到详细日志
测试消息的生产和消费
1. 消息发送,找到类org.apache.rocketmq.example.quickstart.Producer
1. 增加代码,指定NameSrv地址, producer.setNamesrvAddr("127.0.0.1:9876");
2. 启动main方法,可见日志输出SendResult
3. 在store路径下,可见已生成TopicTest相关的物理文件
2. 消息消费,找到类org.apache.rocketmq.example.quickstart.Consumer
1. 增加代码,指定NameSrv地址, consumer.setNamesrvAddr("127.0.0.1:9876");
2. 启动main方法,可见日志输出消费日志,如 ConsumeMessageThread_19 Receive New Messages: xxx....
附录1
#nameServer 地址 分号分割
namesrvAddr=127.0.0.1:9876
# 存储路径
storePathRootDir=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store
#commitLog 存储路径
storePathCommitLog=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\commitlog
# 消费队列存储路径
storePathConsumeQueue=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\consumequeue
# 消息索引|存储路径
storePathindex=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\index
#checkpoint 文件存储路径
storeCheckpoint=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\checkpoint
#abort 文件存储路径
abortFile=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\abort