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