前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建源码调试环境—RocketMQ源码分析(一)

搭建源码调试环境—RocketMQ源码分析(一)

原创
作者头像
程序员Alan
发布2022-11-02 22:39:32
7830
发布2022-11-02 22:39:32
举报
文章被收录于专栏:程序员Alan

你好,我是程序员Alan,很高兴遇见你。

一、RocketMQ目录结构

在正式开始搭建调试环境之前,我们先了解一下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:命令行监控工具相关。

二、获取RocketMQ源码

源码地址:https://github.com/apache/rocketmq/tree/rocketmq-all-5.0.0

我下载的是5.0.0版本,你也可以在github下载其他版本。

如果下载遇到困难,可以留言或者私信我。

三、导入源码

代码下载解压之后,使用IDEA工具导入。

四、下载依赖

先确认Maven目录地址,再刷新,等待依赖下载完成。

五、启动RocketMQ的NameServer

5.1 配置NameServer启动参数

5.1.1 Edit Configurations,配置 ROCKETMQ_HOME 环境变量

5.2 拷贝配置文件

Value 的文件夹是用来部署 RocketMQ 的,里面包括 bin 目录 ,conf 目录,store目录。

我们首先创建一个文件夹,并创建三个子文件夹,分别是 bin ,conf ,store。

文件夹都创建好之后,我们把RocketMQ自带的配置文件拷贝过来。

需要拷贝的文件夹是源码目录 distribution 目录中的 broker.conf、logback_namesrv.xml、logback_broker.xml。

5.3 修改 logback 日志配置文件

打开 logback_namesrv.xml、logback_broker.xml, ${user.home} 全局替换为之前配置的 ROCKETMQ_HOME 目录

5.4 修改broker配置文件

打开 broker.conf 文件,把下面的配置拷贝进去。

代码语言:javascript
复制
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

5.5 启动NameServer

六、启动RocketMQ的Broker

6.1 配置Broker的启动参数

6.2 启动Broker

6.3 查看启动日志

打开 ROCKETMQ_HOME /logs/rocketmqlogs 目录下的 broker.log 或者 namesrv.log 文件看启动的详细日志。

七、测试生产消息

7.1 我们可以直接使用源码自带的示例来做测试。

7.2 打开 Producer.java, 设置 name server addresses

7.3 启动 Producer

7.4 成功发送消息

八、测试消费消息

我们继续使用自带的测试用例。

8.2 打开 Consumer.java, 设置 name server addresses

8.3 启动消费者

8.4 成功消费消息

九、使用RocketMQ Dashboard 查看 RocketMQ运行情况

站在巨人的肩膀上

  • 悟空聊架构

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、RocketMQ目录结构
  • 二、获取RocketMQ源码
  • 三、导入源码
  • 四、下载依赖
  • 五、启动RocketMQ的NameServer
    • 5.1 配置NameServer启动参数
      • 5.2 拷贝配置文件
        • 5.3 修改 logback 日志配置文件
          • 5.4 修改broker配置文件
            • 5.5 启动NameServer
            • 六、启动RocketMQ的Broker
              • 6.1 配置Broker的启动参数
              • 6.2 启动Broker
                • 6.3 查看启动日志
                  • 7.1 我们可以直接使用源码自带的示例来做测试。
                  • 7.2 打开 Producer.java, 设置 name server addresses
                  • 7.3 启动 Producer
              • 七、测试生产消息
                • 7.4 成功发送消息
                  • 8.2 打开 Consumer.java, 设置 name server addresses
                  • 8.3 启动消费者
                  • 8.4 成功消费消息
              • 八、测试消费消息
              • 九、使用RocketMQ Dashboard 查看 RocketMQ运行情况
              • 站在巨人的肩膀上
              相关产品与服务
              微服务引擎 TSE
              微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档