RocketMQ源码环境搭建

哈喽,大家好,我是一条。

相信很多小伙伴都有阅读源码的需求,但是很多开源项目的源码环境搭建起来并不是很容易,所以我会陆续讲一些中间件的源码环境搭建,来帮助大家走好源码阅读的第一步。

首先大家需要明确一个点,阅读源码最好以debug的方式进行,通过栈调用信息可以很容易的弄懂整个流程,这也是我们想要把源码在本地跑起来的原因。

今天我们就来看一下RocketMQ的源码环境搭建。

下载源码

我们可以从github拉取代码,也可以去官网下载。

导入idea,等待maven构建即可。这个时间可能会比较长,视网速而定。

目前最新稳定版是4.9.4,本文用的以前下载的4.3.0版本。

在这里插入图片描述

目录结构

配置项目之前,我们先简单了解一下各个主要模块的作用,知其全貌。

  • broker:这里就是启动broker相关代码。
  • client:顾名思义,客户端代码,包括producer和consumer。
  • common:这里也好理解,一些公共的代码。
  • distribution:和部署相关的配置信息,比如broker.conf。
  • example:这里是RocketMQ为我们写好的一些案例,可以快速上手体验。
  • filter:过滤器功能相关。
  • logging和logappender:日志相关。
  • namesrv:那这个就是NameServer的代码了。
  • remoting:远程通信相关,netty相关。
  • srvutil:工具类无疑了。
  • store:存储相关源码,很重要。

启动NameServer

  1. 配置环境变量 ROCKETMQ_HOME ,创建 namesrv 的运行目录 D:\libetter\advance\rocketmq-namesrv-run 在idea配置好。

image-20220728111447114

  1. 在运行目录创建conf、logs、store三个文件夹。
  2. 把RocketMQ源码目录中的distrbution目录下的broker.conf、logback_namesvr.xml、logback_namesrv.xml三个配置文件拷贝到刚才新建的conf目录中去。
  3. 修改logback_namesvr.xml这个文件,把${user.home}全部替换为你的rocketmq运行目录就可以了。
  4. 修改broker.conf文件,
​
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
​
autoCreateTopicEnable = true
​

namesrvAddr=127.0.0.1:9876
​

storePathRootDir=D:\libetter\advance\rocketmq-namesrv-run\store

storePathCommitLog=D:\libetter\advance\rocketmq-namesrv-run\store\commitlog

storePathConsumeQueue=D:\libetter\advance\rocketmq-namesrv-run\store\consumequeue

storePathIndex=D:\libetter\advance\rocketmq-namesrv-run\store\index

storeCheckpoint=D:\libetter\advance\rocketmq-namesrv-run\store\checkpoint

abortFile=D:\libetter\advance\rocketmq-namesrv-run\abort
​
  1. 启动namesrv
    image-20220728113402259

启动broker

  1. 同样配置环境变量

  2. 配置programer variables

    -c D:\libetter\advance\rocketmq-namesrv-run\conf\broker.conf

启动dashbroad

下载代码:https://github.com/apache/rocketmq-dashboard

配置namesvr地址,启动

image-20220728161430424

Quick Start

修改example中的quick start代码。

在这里插入图片描述

  1. 新建 topic (可以省略,因为我们开启了自动创建topic)
  2. 配置 namesvr 地址
  3. 发送一条消息

  1. 启动consumer

在这里插入图片描述

完成

如此,我们就完成了源码环境搭建,后面就可以通过打断点的方式来研究 namesrv和broker的启动流程
、事务消息、延迟消息等底层原理了。

顺手点个赞吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一条coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值