克隆源码



mvn clean install

执行命令,跳过测试。我在执行测试的时候有时候卡住,所以干脆就跳过了。

mvn clean install -DskipTests

准备环境

在 D 盘创建 rocketmq 文件夹,里面新建 conf,logs,store 三个文件夹。将源码文件夹下 distribution/conf/broker.conf,distribution/conf/logback_broker.xml,distribution/conf/logback_namesrv.xml复制到D:\rocketmq\conf 目录下。

修改 broker.conf ,配置如下

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 存储路径
storePathRootDir=D:\\rocketmq\\store
# commitLog 路径
storePathCommitLog=D:\\rocketmq\\store\\commitlog
# 消费队列存储路径
storePathConsumeQueue=D:\\rocketmq\\store\\consumequeue
# 消息索引存储路径
storePathIndex=D:\\rocketmq\\store\\index
# checkePoint 文件存储路径
storeCheckpoint=D:\\rocketmq\\store\\checkpoint
# abort 文件存储路径
abortFile=D:\\rocketmq\\store\\abort

启动 NameServer

找到 rocketmq\namesrv\NamesrvStartup.java,执行main函数即可。执行之前先修改一下配置文件,增加 Environment variables :ROCKETMQ_HOME=D:\rocketmq

启动成功之后打印:

The Name Server boot success. serializeType=JSON

启动 Broker

找到 rocketmq\broker\BrokerStartup.java,执行main函数即可。执行之前先修改一下配置文件,增加 Environment variables :ROCKETMQ_HOME=D:\rocketmq,还要修改 Program arguments,记住这里的 autoCreateTopicEnable=true ,否则在执行 example 程序的时候,会报无效的Topic 错误。

启动成功之后打印:

The broker[broker-a, 172.26.75.49:10911] boot success. serializeType=JSON and name server is localhost:9876

启动 Consumer

找到 example\quickstart\Consumer.java ,修改 nameserver 的地址。

  consumer.setNamesrvAddr("127.0.0.1:9876");

启动之后打印:

10:42:12.985 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
Consumer Started.

启动 Producer

找到 example\quickstart\Producer.java ,修改 nameserver 的地址。

  producer.setNamesrvAddr("127.0.0.1:9876");

启动成功之后打印发送消息:

这时,Consumer端也收到了消息

至此,RocketMQ 本地调试环境就搭建完成了。

总结

1.启动 NameServer 和 Broker 要配置 ROCKETMQ_HOME 变量。

2.注意是否开启自动创建Topic的配置,如果没有开启,需要主动创建Topic。

3.配置文件的修改

接下来就去RocketMQ的源码中尽情冲浪吧~~

IntelliJ IDEA 调试 Apache RocketMQ 源码的更多相关文章

  1. Eclipse中搭建Apache Tomcat7源码调试环境

    第一步:获取Apache Tomcat7源码,读者可以从Apache 官方网站获取,官方下载地址: http://tomcat.apache.org/download-70.cgi 注意选择Sourc ...

  2. Apache Spark源码剖析

    Apache Spark源码剖析(全面系统介绍Spark源码,提供分析源码的实用技巧和合理的阅读顺序,充分了解Spark的设计思想和运行机理) 许鹏 著   ISBN 978-7-121-25420- ...

  3. PHP扩展编写、PHP扩展调试、VLD源码分析、基于嵌入式Embed SAPI实现opcode查看

    catalogue . 编译PHP源码 . 扩展结构.优缺点 . 使用PHP原生扩展框架wizard ext_skel编写扩展 . 编译安装VLD . Debug调试VLD . VLD源码分析 . 嵌 ...

  4. 《Apache Spark源码剖析》

    Spark Contributor,Databricks工程师连城,华为大数据平台开发部部长陈亮,网易杭州研究院副院长汪源,TalkingData首席数据科学家张夏天联袂力荐1.本书全面.系统地介绍了 ...

  5. RocketMQ源码 — 六、 RocketMQ高可用(1)

    高可用究竟指的是什么?请参考:关于高可用的系统 RocketMQ做了以下的事情来保证系统的高可用 多master部署,防止单点故障 消息冗余(主从结构),防止消息丢失 故障恢复(本篇暂不讨论) 那么问 ...

  6. RocketMQ 源码学习笔记————Producer 是怎么将消息发送至 Broker 的?

    目录 RocketMQ 源码学习笔记----Producer 是怎么将消息发送至 Broker 的? 前言 项目结构 rocketmq-client 模块 DefaultMQProducerTest ...

  7. RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的?

    目录 RocketMQ 源码学习笔记 Producer 是怎么将消息发送至 Broker 的? 前言 项目结构 rocketmq-client 模块 DefaultMQProducerTest Roc ...

  8. RocketMQ源码分析之从官方示例窥探:RocketMQ事务消息实现基本思想

    摘要: RocketMQ源码分析之从官方示例窥探RocketMQ事务消息实现基本思想. 在阅读本文前,若您对RocketMQ技术感兴趣,请加入RocketMQ技术交流群 RocketMQ4.3.0版本 ...

  9. 【RocketMQ源码分析】深入消息存储(1)

    最近在学习RocketMQ相关的东西,在学习之余沉淀几篇笔记. RocketMQ有很多值得关注的设计点,消息发送.消息消费.路由中心NameServer.消息过滤.消息存储.主从同步.事务消息等等. ...

随机推荐

  1. Vue – 基础学习(3):$forceUpdate()和$nextTick()的区别

    Vue – 基础学习(3):$forceUpdate()和$nextTick()的区别

  2. Java 之 可变字符序列:字符串缓冲区(StringBuilder 与 StringBuffer)

    一.字符串拼接问题 由于 String 类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象. Demo: public class StringDemo { public ...

  3. python之路第三天

    2018年 7月 13 日 while循环语句: 输出1-5的数 s = 1 whlie s < 6: print(s) 用while循环输入 1 2 3 4 5 6  8 9 10 while ...

  4. RabbitMQ基本概念(三)-Centos7下安装RabbitMQ3.6.1

    如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧! 用什么系统 本文使用的是Centos7,为了保证对linux不太熟悉的伙伴也能轻松上手(避免折在安装的路上),下面是 ...

  5. python匹配linux通配符

    有时候需要匹配linux中的通配符,例如*和?,它们的含义为: *:匹配0个或多个字符: ?:匹配任意单个字符. 这和正则表达式中含义不一样,在正则表达式中: *:匹配前一个字符0次或者多次: ?:匹 ...

  6. Pytorch数据读取详解

    原文:http://studyai.com/article/11efc2bf#%E9%87%87%E6%A0%B7%E5%99%A8%20Sampler%20&%20BatchSampler ...

  7. HDU-4794:Arnold(斐波拉契循环节 二次剩余)

    本题我只是个搬运工,主要是抢救补板子,所以自己就没写.https://blog.csdn.net/u013534123/article/details/78058997 题意: 大致题意是给你一个N* ...

  8. mcp2515屏蔽寄存器和过滤寄存器的学习

    mcp2515是can控制器,简单的来讲,就是只要配置好寄存器,芯片就能够自动的解析can数据帧,同时保存到接收缓存中,提醒单片机可以读取can的数据字节. 读取的方式是快速spi,可以达到10Mbi ...

  9. Mac安装vue.js开发环境

    Mac安装vue.js开发环境 DannyHooDanny的专栏订阅 一.vue.js开发环境 二.初始化一个vue.js项目 三.vue.js项目打包部署 本来以为在Mac上搭建vue.js的环境挺 ...

  10. PHP:ThinkCMFX任意文件包含漏洞

    前言:最近爆出来的漏洞,ThinkCmfX版本应该是通杀的,基于3.X Thinkphp开发的 代码下载地址:https://gitee.com/thinkcmf/ThinkCMFX/releases ...