type
status
date
slug
summary
tags
category
icon
password
首先,你得有源码,这个网上都可以找到,各个版本大差不差;但是由于RocketMQ并入了Apache基金会,所以没了中文注释,看起来会有些费劲。
我这边用的是RocketMQ4.4.0的源码,仅对核心源码进行分析,扩展包里的就暂时不谈了。本篇文章我会解释这些模块大致是做什么用的,详细分析后续更新。
以下是源码的结构:
其中有几个模块是核心:
- namesrv:namesrv的核心代码,可以理解是mq的注册中心。
- broker:即大家常常说的消息队列本体代码,核心中的核心。
- client:消息客户端,包含消息生产者、消息消费者相关类 。
- remoting:远程通信和协议相关的代码,基于netty(rocketmq的通信部分就是由netty去实现的)。
- store:持久化,高可用HA相关的一些代码,也非常重要。
- filter:消息过滤的相关代码。
- acl:权限相关的代码。
接下来的文章我按顺序从这几个方面来分析RocketMQ:
1.路由发现
2.消息发送
3.消息存储
4.消息消费
5.消息过滤
6.高可用