zl程序教程

您现在的位置是:首页 >  Java

当前栏目

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

2023-02-18 16:31:08 时间

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目录。

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

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

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

在idea中配置ROCKETMQ_HOME步骤如下:

在Edit Configuations中配置。点击:

在Environment variables中设置环境变量:

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

启动nameServer源码:

启动broker

消息消费