# 消息中间件 RocketMQ 高级功能和源码分析(三)

消息中间件 RocketMQ 高级功能和源码分析(三)

一、 消息中间件 RocketMQ 源码分析:RocketMQ 源码结构介绍和导入。

1、环境搭建:依赖工具

  • JDK :1.8+
  • Maven
  • IntelliJ IDEA

2、源码拉取

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

在这里插入图片描述

3、源码目录结构:

  • broker: broker 模块(broke 启动进程)

  • client :消息客户端,包含消息生产者、消息消费者相关类

  • common :公共包

  • dev :开发者信息(非源代码)

  • distribution :部署实例文件夹(非源代码)

  • example: RocketMQ 例代码

  • filter :消息过滤相关基础类

  • filtersrv:消息过滤服务器实现相关类(Filter 启动进程)

  • logappender:日志实现相关类

  • namesrv:NameServer 实现相关类(NameServer 启动进程)

  • openmessageing:消息开放标准

  • remoting:远程通信模块,给予 Netty

  • srcutil:服务工具类

  • store:消息存储实现相关类

  • style:checkstyle 相关实现

  • test:测试相关类

  • tools:工具类,监控命令相关实现类

4、源码 导入 IDEA

Idea --> File --> Open --> RocketMQ 源码目录 --> OK。

在这里插入图片描述

执行安装:

 idea --> 右边 Maven --> `m` (Execute Maven Goal) 
 Working directory:  (  你的 rocketmq 源码 pom.xml 所在目录  ) 
 Command line: ( clean install -Dmaven.test.skip=true )
--> Excute
clean install -Dmaven.test.skip=true

在这里插入图片描述

二、 消息中间件 RocketMQ 源码分析:RocketMQ 源码环境调试。

1、调试

在 RocketMQ 源码 根目录下,创建conf配置文件夹,从 RocketMQ 源码 的 distribution 目录下的 conf 目录里,拷贝broker.conflogback_broker.xmllogback_namesrv.xml 到 新创建的 conf 目录下。

在这里插入图片描述

2、启动 NameServer

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

在这里插入图片描述

  • 2)配置 ROCKETMQ_HOME
idea --> Edit Configurations... --> Environment variables : 
点击 `+` 添加 
Name : ( ROCKETMQ_HOME )
Value : ( 你的 rocketmq 源码路径 )

在这里插入图片描述

  • 3)重新启动 NameServer

    控制台打印结果

The Name Server boot success. serializeType=JSON

在这里插入图片描述

3、启动 Broker

3.1 broker.conf配置文件内容

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0

# namesrvAddr 地址
namesrvAddr=127.0.0.1:9876
# 零晨4点清理数据
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

3.2 创建数据文件夹dataDir
3.3 启动BrokerStartup,配置broker.confROCKETMQ_HOME

1)进入 broker 模块,尝试启动 BrokerStartup。启动不成功时,也需要配置 ROCKETMQ_HOME

2)配置 ROCKETMQ_HOME

idea --> Edit Configurations... --> Environment variables : 
点击 `+` 添加 
Name : ( ROCKETMQ_HOME )
Value : ( 你的 rocketmq 源码路径 )

3) 配置broker.conf 路径。

idea --> Edit Configurations... --> Application --> BrokerStartup  
--> Program arguments: ( `broker.conf` 路径 )

在这里插入图片描述

4)进入 broker 模块,启动 BrokerStartup

在这里插入图片描述

4、发送消息

  • 1)进入 example 模块的org.apache.rocketmq.example.quickstart
  • 2)指定 Namesrv 地址

DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
producer.setNamesrvAddr("127.0.0.1:9876");
  • 3)运行main方法,发送消息

在这里插入图片描述

5、消费消息

  • 1)进入 example 模块的 org.apache.rocketmq.example.quickstart
  • 2)指定 Namesrv 地址

DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name_4");
consumer.setNamesrvAddr("127.0.0.1:9876");
  • 3)运行main方法,消费消息

在这里插入图片描述

上一节关联链接请点击:
# 消息中间件 RocketMQ 高级功能和源码分析(二)

  • 27
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
开放消息服务RocketMQ是一种高性能、高可靠、可伸缩的分布式消息中间件。它具有以下主要功能: 1. 消息发布与订阅:RocketMQ支持发布-订阅模式,允许多个消费者同时订阅同一个主题,实现消息的广播或者点对点传递。 2. 顺序消息:RocketMQ支持按照消息的发送顺序进行有序消费,保证消息的顺序性。 3. 可靠性传输:RocketMQ保证消息的可靠性传输,它采用主从复制机制来保证消息的高可靠性。消息发送到主节点后,会异步地复制到从节点,从节点负责消息的持久化。 4. 消息轨迹追踪:RocketMQ提供了消息轨迹追踪功能,可以记录消息的生产、消费、存储等环节的详细信息,方便进行故障排查和性能优化。 5. 消息过滤:RocketMQ支持根据SQL表达式对消息进行过滤,消费者可以通过设置过滤条件来选择需要消费的消息。 6. 分布式事务:RocketMQ支持分布式事务,可以保证消息和业务数据的一致性。 7. 批量发送:RocketMQ支持批量发送消息,可以提高消息的发送效率。 8. 延迟消息:RocketMQ支持发送延迟消息,可以设置消息的延迟时间,用于实现定时任务等场景。 除了以上功能RocketMQ还提供了可视化的管理控制台、监控报警功能等,方便用户进行消息的管理和监控。它广泛应用于电商、物流、金融、社交等领域,能够满足高并发、大规模分布式系统的消息通信需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

段子手-168

你的鼓励将是我你的创作最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值