你好,我是程序员Alan,很高兴遇见你。
在正式开始搭建调试环境之前,我们先了解一下RockeMQ源码的整体架构。
这是因为掌握了整体架构,可以让我们迅速了解各个方面的特性,并且可以方便我们后续快速定位功能模块对应的代码文件。话不多说,我们开始看RocketMQ目录结构。
acl: 权限控制。可以给话题指定权限,只有拥有权限的消费者才可以进行消费。
broker: RocketMQ 的 Broker 相关代码,用来启动 Broker 进程。Broker 就是用来收客户端发的消息、存储消息传、递消息给消费端的组件。
client:RocketMQ 的 Producer、Consumer 这些客户端的代码,用来生产消息、消费消息。
common:公共模块。
distribution:用来部署 RocketMQ 的,比如 bin 目录 ,conf 目录。
example: RocketMQ 的用例。
filter:RocketMQ 过滤器。
namesvr:NameServer 的源码。NameServer 就是所有 Broker 都需要注册的地方,注册中心。
remoting:RocketMQ 的远程网络通信模块。
srvutil:工具类。
store:消息存储。
style:代码检查。
tools:命令行监控工具相关。
源码地址:https://github.com/apache/rocketmq/tree/rocketmq-all-5.0.0
我下载的是5.0.0版本,你也可以在github下载其他版本。
如果下载遇到困难,可以留言或者私信我。
代码下载解压之后,使用IDEA工具导入。
先确认Maven目录地址,再刷新,等待依赖下载完成。
5.1.1 Edit Configurations,配置 ROCKETMQ_HOME 环境变量
Value 的文件夹是用来部署 RocketMQ 的,里面包括 bin 目录 ,conf 目录,store目录。
我们首先创建一个文件夹,并创建三个子文件夹,分别是 bin ,conf ,store。
文件夹都创建好之后,我们把RocketMQ自带的配置文件拷贝过来。
需要拷贝的文件夹是源码目录 distribution 目录中的 broker.conf、logback_namesrv.xml、logback_broker.xml。
打开 logback_namesrv.xml、logback_broker.xml, ${user.home} 全局替换为之前配置的 ROCKETMQ_HOME 目录
打开 broker.conf 文件,把下面的配置拷贝进去。
namesrvAddr=127.0.0.1:9876
brokerIP1=127.0.0.1
storePathRootDir=D:/Project/ROCKETMQ_HOME/store
storePathCommitLog=D:/Project/ROCKETMQ_HOME/store/commitlog
storePathConsumeQueue=D:/Project/ROCKETMQ_HOME/store/consumequeue
storePathIndex=D:/Project/ROCKETMQ_HOME/store/index
storeCheckpoint=D:/Project/ROCKETMQ_HOME/store/checkpoint
abortFile=D:/Project/ROCKETMQ_HOME/store/abort
打开 ROCKETMQ_HOME /logs/rocketmqlogs 目录下的 broker.log 或者 namesrv.log 文件看启动的详细日志。
我们继续使用自带的测试用例。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。