zoukankan      html  css  js  c++  java
  • 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 ocketmq1local_ROCKETMQ_HOMEconfroker.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
    
  • 相关阅读:
    嵌入式工程师为何不用学习C++语言?
    汽车电子基础知识
    为什么寄存器比存储器快?
    数字信号和模拟信号
    JLink和JTag的区别
    C++中static关键字作用总结
    所谓高情商,就是会说话
    汽车电子缩略语及术语
    卷积
    算法整理
  • 原文地址:https://www.cnblogs.com/starmoon1994/p/14128157.html
Copyright © 2011-2022 走看看