• IntelliJ IDEA 调试 Apache RocketMQ 源码


    克隆源码


    mvn clean install

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

    mvn clean install -DskipTests
    

    克隆RocketMQ源码

    准备环境

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

    修改 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 amesrvNamesrvStartup.java,执行main函数即可。执行之前先修改一下配置文件,增加 Environment variables :ROCKETMQ_HOME=D: ocketmq

    启动成功之后打印:

    The Name Server boot success. serializeType=JSON
    

    启动 Broker

    找到 rocketmqrokerBrokerStartup.java,执行main函数即可。执行之前先修改一下配置文件,增加 Environment variables :ROCKETMQ_HOME=D: ocketmq,还要修改 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

    找到 examplequickstartConsumer.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

    找到 examplequickstartProducer.java ,修改 nameserver 的地址。

      producer.setNamesrvAddr("127.0.0.1:9876");
    

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

    这时,Consumer端也收到了消息

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

    总结

    1.启动 NameServer 和 Broker 要配置 ROCKETMQ_HOME 变量。
    2.注意是否开启自动创建Topic的配置,如果没有开启,需要主动创建Topic。
    3.配置文件的修改

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

  • 相关阅读:
    FRR and VFR
    MEC in 5G networks
    KNI
    SGX KMRA
    5G E2E issues
    物理层无线信道的特征
    PTP 时钟
    Ransim go through
    网页title闪动JavaScript实现消息提醒
    敏感词库
  • 原文地址:https://www.cnblogs.com/panzi/p/11095524.html
Copyright © 2020-2023  润新知