Rocketmq源码(一)手把手本地调试

很久没有学习了,从前是因为太忙,现在是因为太懒。立个flag,一定要把rocketmq源码看完!源码阅读从idea的环境搭建和debug开始~

代码下载

先将代码从github上下载下来。一共是4个模块需要启动,分别是namesvr、broker、consumer、producer,部署架构如下图所示。(图摘自官网
在这里插入图片描述

代码架构

先大致捋一下代码架构,如下图所示。
在这里插入图片描述

核心模块如下:

  • rocketmq-broker:broker主要的业务逻辑,消息收发,主从同步。
  • rocketmq-client:客户端接口,生产者和消费者。
  • rocketmq-namesrv:nameserver服务注册与发现。
  • rocketmq-remoting:远程调用接口,封装Netty底层通信。
  • rocketmq-store:消息存储核心包。
  • rocketmq-common:公用数据结构等等。
  • rocketmq-distribution:配置文件。
  • rocketmq-example:生产者和消费者示例。
  • rocketmq-logappender、rocketmq-logging:日志相关。

启动namesvr

  1. 设置环境变量
    ROCKETMQ_HOME=[你的rocketmq项目路径]/distribution
  2. 设置启动命令参数
    -n 127.0.0.1:9876
    在这里插入图片描述
  3. 增加日志输出到控制台(可选)
    在distribution/conf/logback_namesrv.xml文件中增加输出到控制台 ,为了方便看日志。
    在这里插入图片描述
  4. 启动NamesrvStartup

启动broker

  1. 设置环境变量
    ROCKETMQ_HOME=[你的rocketmq项目路径]/distribution
  2. 设置启动命令参数
    -c [你的rocketmq项目路径]/distribution/conf/broker.conf
    在这里插入图片描述
  3. 在distribution/conf/broker.conf 文件中增加配置
## nameserver地址 设置为本地
namesrvAddr = 127.0.0.1:9876
## 自动创建topic
autoCreateTopicEnable = true
brokerClusterName = DefaultCluster
brokerName = broker-a
## 表示master节点
brokerId = 0
## 在每天4点清理过期数据
deleteWhen = 04
## 数据保存时间为4h
fileReservedTime = 48
brokerRole = ASYNC_MASTER
## 异步刷盘
flushDiskType = ASYNC_FLUSH
## 这个master节点的ip地址 设置为本地
brokerIP1 = 127.0.0.1
  1. 增加日志输出到控制台(可选)
    在distribution/conf/logback_broker.xml文件中增加输出到控制台 ,为了方便看日志。
    在这里插入图片描述
  2. 启动BrokerStartup

启动consumer

在example模块下的simple包里找到PushConsumer,设置nameserver后可启动。
在这里插入图片描述

启动producer

在example模块下的simple包里找到Producer,设置nameserver后可启动。
在这里插入图片描述
producer发送完在consumer的控制台上观察是否接收到即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值