• 源码分析-环境搭建


    源码拉取

    从官方仓库 https://github.com/apache/rocketmq clone 或者 download 源码。

    image

    源码目录结构:

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

    导入IDEA

    image

    执行安装

    clean install -Dmaven.test.skip=true
    

    调试

    创建 conf 配置文件夹,从 distribution 拷贝 broker.conf 和 logback_broker.xml 和logback_namesrv.xml

    image

    启动NameServer

    • 展开namesrv模块,右键NamesrvStartup.java

    image

    • 配置ROCKETMQ_HOME

    image

    image

    • 重新启动

    image

    启动Broker

    • broker.conf 配置文件内容
    brokerClusterName = DefaultCluster
    brokerName = broker-a
    brokerId = 0
    # namesrvAddr地址
    namesrvAddr=127.0.0.1:9876
    deleteWhen = 04
    fileReservedTime = 48
    brokerRole = ASYNC_MASTER
    flushDiskType = ASYNC_FLUSH
    autoCreateTopicEnable=true
    # 存储路径
    storePathRootDir=D:\RocketMQ\data\rocketmq\dataDir
    # commitLog路径
    storePathCommitLog=D:\RocketMQ\data\rocketmq\dataDir\commitlog
    # 消息队列存储路径
    storePathConsumeQueue=D:\RocketMQ\data\rocketmq\dataDir\consumequeue
    # 消息索引存储路径
    storePathIndex=D:\RocketMQ\data\rocketmq\dataDir\index
    # checkpoint文件路径
    storeCheckpoint=D:\RocketMQ\data\rocketmq\dataDir\checkpoint
    # abort文件存储路径
    abortFile=D:\RocketMQ\data\rocketmq\dataDir\abort
    
    • 创建文件夹
    • 启动 BrokerStartup ,配置 broker.conf 和 ROCKETMQ_HOME

    image

    发送消息

    • 进入example模块的 org.apache.rocketmq.example.quickstart
    • 指定Namesrv地址
    DefaultMQProducer producer = new DefaultMQProducer("group_test");
    producer.setNamesrvAddr("127.0.0.1:9876");
    
    • 运行 main 方法,发送消息

    image

    消费消息

    • 进入example模块的 org.apache.rocketmq.example.quickstart
    • 指定Namesrv地址
            DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("group_test");
            consumer.setNamesrvAddr("127.0.0.1:9876");
    
    • 运行 main 方法,消费消息

    image

  • 相关阅读:
    PHP项目学习1
    常见的几种单例模式
    CGlib和JDK动态代理
    jar打包方法使用整理
    JVM内存分配原理
    JDK环境变量配置目录jre,jvm
    android学习笔记13——ExpandableListView
    android学习笔记12——ListView、ListActivity
    android学习笔记11——ScrollView
    android学习笔记十——TabHost
  • 原文地址:https://www.cnblogs.com/weianlai/p/14613306.html
Copyright © 2020-2023  润新知