15分钟搭建RocketMQ源码调试环境
下载源码
下载源码,github页面选择(rocketmq-all-4.7.1)版本压缩包,https://github.com/apache/rocketmq/tags
导入IDEA
1. 使用IDEA打开工程后,修改pom.xml文件中无关内容
1. 去除maven-gpg-plugin、maven-failsafe-plugin插件
3. 使用IDEA的maven编译整个项目,(clean compile install),记得Skip Tests
新建文件夹,存放配置、日志、消息体等内容
1. 新建一个文件夹,如1local_ROCKETMQ_HOME
2. 1local_ROCKETMQ_HOME路径下创建3个文件夹(conf,logs,store)
3. 将工程中distribution/conf目录下的3个文件(logback_namesrv.xml,logback_broker.xml,broker.conf),复制到前面创建的conf目录下
4. 修改broker.conf,增加【附录1】中的配置,注意替换路径
5. 修改logback_namesrv.xml和logback_broker.xml中的${user.home}参数,替换为1local_ROCKETMQ_HOME绝对路径
6. 修改org.apache.rocketmq.common.namesrv.NamesrvConfig,rocketmqHome变量,原因是动态获取配置,现改为1local_ROCKETMQ_HOME绝对路径
7. 修改org.apache.rocketmq.common.BrokerConfig变量,原因是动态获取配置,现改为1local_ROCKETMQ_HOME绝对路径
应用启动
1. NameServer启动
1. NamesrvStartup main方法启动即可
2. 控制台打印如下日志代表启动成功(The Name Server boot success. serializeType=JSON)
3. 1local_ROCKETMQ_HOME/logs/rocketmqlogs可看到详细日志
2. BrokerStartup启动
1. BrokerStartup main方法启动即可(启动时需指定conf文件 -c D:\opensource_code\rocketmq\1local_ROCKETMQ_HOME\conf\broker.conf
)
2. 控制台打印如下日志代表启动成功(The broker[broker-a, 你的ip:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876
)
3. 1local_ROCKETMQ_HOME/logs/rocketmqlogs可看到详细日志
测试消息的生产和消费
1. 消息发送,找到类org.apache.rocketmq.example.quickstart.Producer
1. 增加代码,指定NameSrv地址, producer.setNamesrvAddr("127.0.0.1:9876");
2. 启动main方法,可见日志输出SendResult
3. 在store路径下,可见已生成TopicTest相关的物理文件
2. 消息消费,找到类org.apache.rocketmq.example.quickstart.Consumer
1. 增加代码,指定NameSrv地址, consumer.setNamesrvAddr("127.0.0.1:9876");
2. 启动main方法,可见日志输出消费日志,如 ConsumeMessageThread_19 Receive New Messages: xxx....
附录1
#nameServer 地址 分号分割
namesrvAddr=127.0.0.1:9876
# 存储路径
storePathRootDir=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store
#commitLog 存储路径
storePathCommitLog=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\commitlog
# 消费队列存储路径
storePathConsumeQueue=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\consumequeue
# 消息索引|存储路径
storePathindex=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\index
#checkpoint 文件存储路径
storeCheckpoint=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\checkpoint
#abort 文件存储路径
abortFile=D:\\opensource_code\\rocketmq\\1local_ROCKETMQ_HOME\\store\\abort
15分钟搭建RocketMQ源码调试环境的更多相关文章
- [原创]在Windows和Linux中搭建PostgreSQL源码调试环境
张文升http://ode.cnblogs.comEmail:wensheng.zhang#foxmail.com 配图太多,完整pdf下载请点这里 本文使用Xming.Putty和VMWare几款工 ...
- 如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一)
1 前言 这是SpringBoot2.1源码分析专题的第一篇文章,主要讲如何来搭建我们的源码阅读调试环境.如果有经验的小伙伴们可以略过此篇文章. 2 环境安装要求 IntelliJ IDEA JDK1 ...
- 【深入浅出 Yarn 架构与实现】1-2 搭建 Hadoop 源码阅读环境
本文将介绍如何使用 idea 搭建 Hadoop 源码阅读环境.(默认已安装好 Java.Maven 环境) 一.搭建源码阅读环境 一)idea 导入 hadoop 工程 从 github 上拉取代码 ...
- 在IDEA中搭建Java源码学习环境并上传到GitHub上
打开IDEA新建一个项目 创建一个最简单的Java项目即可 在项目命名填写该项目的名称,我这里写的项目名为Java_Source_Study 点击Finished,然后在项目的src目录下新建源码文件 ...
- 利用IDEA搭建JDK源码阅读环境
利用IDEA搭建JDK源码阅读环境 首先新建一个java基础项目 基础目录 source 源码 test 测试源码和入口 准备JDK源码 下图框起来的路径就是jdk的储存位置 打开jdk目录,找到sr ...
- win7+idea+maven搭建spark源码阅读环境
1.参考. 利用IDEA工具编译Spark源码(1.60~2.20) https://blog.csdn.net/He11o_Liu/article/details/78739699 Maven编译打 ...
- 搭建 Spring 源码阅读环境
前言 有一个Spring源码阅读环境是学习Spring的基础.笔者借鉴了网上很多搭建环境的方法,也尝试了很多,接下来总结两种个人认为比较简便实用的方法.读者可根据自己的需要自行选择. 方法一:搭建基础 ...
- Mac搭建Hadoop源码阅读环境
1.本次Hadoop源码阅读环境使用的阅读工具是idea,Hadoop版本是2.7.3.需要安装的工具包括idea.jdk.maven.protobuf等 2.jdk,使用的版本是1.8版,在jdk官 ...
- JVM 源码分析(二):搭建 JDK 8 源码调试环境(Windows 上使用 CLion)
前言 一.准备源码 二.安装 "Bootstrap JDK" 三.配置编译环境 四.编译与测试 五.安装 CMake 和 GDB 五.准备远程调试 六.开始远程调试 前言 上一篇文 ...
随机推荐
- salesforce零基础学习(一百一十三)Trigger中获取IP地址的过程
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.228.0.apexcode.meta/apexcode/apex_class_Auth ...
- Python技法:实用运维脚本编写(进程/文件/目录操作)
Python在很大程度上可以对shell脚本进行替代.笔者一般单行命令用shell,复杂点的多行操作就直接用Python了.这篇文章就归纳一下Python的一些实用脚本操作. 1. 执行外部程序或命令 ...
- npm 是什么?
npm 是什么? 本文写于 2020 年 6 月 16 日 最近帮几个同学装开发环境,发现他们会各种"卡死"在 npm 安装一些包的过程中. 他们会非常纠结这个命令我明明敲的和网上 ...
- php魔术方法小结
php魔术方法 __construct() __construct(mixed ...$values = ""): void PHP 允许开发者在一个类中定义一个方法作为构造函数. ...
- MYSQL如何比对版本号字符串
MYSQL如何比对版本号字符串 mysql 数据库中存储了一个形如"2.7.6.526" 的版本号,现在要获取出小于某个版本号的数据,怎么做?这个就是昨天遇到的一个问题,记录下查到 ...
- Redis设计与实现3.2:Sentinel
Sentinel哨兵 这是<Redis设计与实现>系列的文章,系列导航:Redis设计与实现笔记 哨兵:监视.通知.自动故障恢复 启动与初始化 Sentinel 的本质只是一个运行在特殊模 ...
- 数仓选型必列入考虑的OLAP列式数据库ClickHouse(中)
实战 案例使用 背景 ELK作为老一代日志分析技术栈非常成熟,可以说是最为流行的大数据日志和搜索解决方案:主要设计组件及架构如下: 而新一代日志监控选型如ClickHouse.StarRocks特别是 ...
- 20212115朱时鸿 《python程序设计》实验四报告
课程:<Python程序设计>班级: 2121姓名: 朱时鸿学号:20212115实验教师:王志强实验日期:2022年5月28日必修/选修: 公选课 1.实验内容 Python综合应用:爬 ...
- 解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法
摘要:本文提出了两个用于无监督的具备可解释性和鲁棒性时间序列离群点检测的自动编码器框架. 本文分享自华为云社区<解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法&g ...
- 跨域问题和使用 cookie 的限制
前言 在我的文章 使用 cookie 的身份验证和授权 的最后,讲到了跨域问题,这篇文章就简单介绍跨域的相关知识,并说明在 net core 中怎么设置跨域. 使用的版本为 net6,并使用 Mini ...