源码分析-环境搭建

源码拉取

从官方仓库 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

原文地址:https://www.cnblogs.com/weianlai/p/14613306.html