【RocketMQ源码学习】RocketMQ源码学习之环境搭建

  • 作者: 凯哥Java(公众号:凯哥Java)
  • RocketMQ
  • 时间:2022-10-20 13:07
  • 4119人已阅读
简介 本文介绍rocket源码学习之环境搭建

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

RocketMQ是开源的。

git地址:https://github.com/apache/rocketmq

注意:依赖环境:

JDK1.8+;maven;idea.

从git检出源码后,源码目录结构:

broker: broker 模块(broke 启动进程)

client :消息客户端,包含消息生产者、消息消费者相关类

common :公共包

dev :开发者信息(非源代码)

distribution :部署实例文件夹(非源代码)

example: RocketMQ 例代码

filter :消息过滤相关基础类

filtersrv:消息过滤服务器实现相关类(Filter启动进程)

logappender:日志实现相关类

namesrv:NameServer实现相关类(NameServer启动进程)

openmessageing:消息开放标准

remoting:远程通信模块,给予Netty

srcutil:服务工具类

store:消息存储实现相关类

style:checkstyle相关实现

test:测试相关类

tools:工具类,监控命令相关实现类

将源码导入到idea后,执行下面命令:

clean install -Dmaven.test.skip =true

源码调试:

需求:我们基于源码来实现一个消息发送和消息消费。

我们知道,正常RocketMQ部署顺序:启动NameServer、启动Broker、启动生成、启动消费者、发送消息,消费消息。

在进行源码调试之前,先在源码工程创建conf配置文件夹,配置信息从distribution拷贝brokrer.conf和logback_broker.xml及logback_namesrv.xml这三个文件到conf目录。

411f14f3fc29483dd025f8761a030d5c.png

设置rocketmq的环境变量。不然会出现以下错误:

910d45520b4de64fc4a5aba0f09bd65b.png

为什么要甚至rocketmq的环境变量ROCKETMQ_HOME呢?

因为rocketmq在运行的时候,需要从conf文件夹下获取配置及打印日志。查找这些都是从ROCKETMQ_HOME开始查找的。如果没有配置就会报错。

在idea中配置ROCKETMQ_HOME步骤如下:

33923e08fc4209c26c7d869a10317aa0.png

在Edit Configuations中配置。点击:

00e1630ffbe1556898835a970970cc04.png

在Environment variables中设置环境变量:

cba117d6a2d0df23f396b39b2de3c1ff.png

配置完成之后,在启动nameService.

启动nameServer源码:

启动broker

消息消费





TopTop