RocketMq调试

简介: Apache RocketMQ 是一个分布式消息和流媒体平台,具有低延迟、高性能和可靠性、万亿级容量和灵活的可扩展性。本篇文章主要介绍下源码结构及如何从git上下载源码在本地调试。


一、环境搭建

1. 依赖工具

  • JDK :1.8+
  • Maven
  • Intellij  IDEA

二、拉取源码

git clone https://github.com/apache/rocketmq.git

1.源码目录结构

image.png    

  • broker:broker 启动进程
  • client :消息客户端,包含消息得生产者、消费者相关的类
  • common :公共包
  • dev :开发者信息(非源代码)
  • distribution:部署文件
  • example: 样例代码
  • filter:消息过滤相关基础类
  • filtersrv:消息过滤服务器实现相关类
  • logappender:日志实现相关类
  • namesrv:NameServer 实现相关类(NameServer 启动进程)
  • openmessageing:消息开放标准
  • remoting:远程通信模块,基于Netty实现
  • srcutil:服务工具类
  • store:消息存储实现相关类
  • style:chkekstyle相关实现
  • test: 测试相关的类
  • tools:工具类,监控命令相关实现类
  • docs:rocketmq文档

三、编译源码

1、导入源码

把源码导入到idea工具中

image.png

2、编译

使用mvn clean install  -Dmaven.test.skip=true,命令对源码进行编译

image.png

image.png

四、创建配置文件

在源码根目录中创建conf文件夹,并把distribution模块中的文件拷贝到conf文件夹中,主要为了broker启动时找配置文件

image.png

五、启动nameServer

nameServer启动入口是org.apache.rocketmq.namesrv.NamesrvStartup,直接启动会报错,需要配置环境变量ROCKETMQ_HOME=源码目录

image.png

六、启动broker

broker启动入口org.apache.rocketmq.broker.BrokerStartup,启动broker之前需要配置broker.conf文件位置

image.png

七、测试

使用example目录中的quickstart样例Producer/Consumer进行测试

在Producer和Consumer中设置NamesrvAddr地址,consumer.setNamesrvAddr("127.0.0.1:9876");

启动Consumer,然后启动Producer,启动成功会看到控制台上生产者输出的信息和消费者输出的信息。




相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 Java Apache
手把手教你使用Idea调试RocketMQ源码
手把手教你使用Idea调试RocketMQ源码
371 0
手把手教你使用Idea调试RocketMQ源码
|
消息中间件 Apache 开发工具
RocketMQ源码本地搭建调试
导入IDEA,可在命令行执行mvn compile一下,保证源码能够正确编译。本次我使用的master分支的版本-4.8.0。下面我们开始准备启动Namesrv。
233 0
|
消息中间件 存储 监控
搭建源码调试环境—RocketMQ源码分析(一)
在正式开始搭建调试环境之前,我们先了解一下RockeMQ源码的整体架构。 这是因为掌握了整体架构,可以让我们迅速了解各个方面的特性,并且可以方便我们后续快速定位功能模块对应的代码文件。话不多说,我们开始看RocketMQ目录结构。
331 0
搭建源码调试环境—RocketMQ源码分析(一)
|
存储 消息中间件 Android开发
《RocketMQ技术内幕:RocketMQ架构设计与实现原理》—1.1.2 Eclipse调试RocketMQ源码
本节书摘来自华章计算机《RocketMQ技术内幕:RocketMQ架构设计与实现原理》一书中的第1章,丁威 周继峰 著。更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2266 0
|
消息中间件 RocketMQ
RocketMQ源码调试环境搭建
转自:http://blog.csdn.net/mr253727942/article/details/53464015
978 0
|
消息中间件 算法 Java
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
797 1
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
|
消息中间件 uml RocketMQ
3 张图带你彻底理解 RocketMQ 事务消息
3 张图带你彻底理解 RocketMQ 事务消息
67805 2
3 张图带你彻底理解 RocketMQ 事务消息
|
消息中间件 NoSQL 关系型数据库
实战:如何防止mq消费方消息重复消费、rocketmq理论概述、rocketmq组成、普通消息的发送
实战:如何防止mq消费方消息重复消费 如果因为网络延迟等原因,mq无法及时接收到消费方的应答,导致mq重试。(计算机网络)。在重试过程中造成重复消费的问题
2794 1
实战:如何防止mq消费方消息重复消费、rocketmq理论概述、rocketmq组成、普通消息的发送
|
消息中间件 Java uml
5张图带你理解 RocketMQ 顺序消息实现机制
5张图带你理解 RocketMQ 顺序消息实现机制
728 1
5张图带你理解 RocketMQ 顺序消息实现机制
|
消息中间件 缓存 算法
阿里二面:RocketMQ 消息积压了,增加消费者有用吗?
阿里二面:RocketMQ 消息积压了,增加消费者有用吗?
271 0
阿里二面:RocketMQ 消息积压了,增加消费者有用吗?