RocketMQ源码(二):源码概览
一、RocketMQ源码包模块概览
rocketmq源码包各模块内容如下:
![0](https://img2023.cnblogs.com/blog/1680081/202305/1680081-20230518153513059-1614811134.png)
1、命名服务模块 - namesrv
namesrv被称为命名服务,主要用于Topic路由信息存储;管理broker节点(路由注册、路由删除)。
2、服务端模块 - broker
接收MQ客户端(生产者、消费者)的请求,调用store模块对消息做持久化。
3、存储模块 - store
存储实现,包括索引服务、高可用HA服务实现。
4、通信模块 - remoting
基于netty的底层通信实现,服务间的交互基于通信模块。
5、通用模块 - common
各模块通用的功能。
6、客户端模块 - client
mq客户端的实现,生产者、消费者。
7、过滤器模块 - filter
消息过滤模块,常用的tag过滤、sql表达式过滤。
8、工具模块 - tools
集群管理模块,提供消息查询等功能。
二、RocketMQ核心功能
1、RocketMQ服务端启动
RocketMQ服务端由两部分构成,NameServer是服务的注册中心,Broker启动时会将自身的地址注册到NameServer,客户端启动时会优先从NameServer获取Broker地址,再由客户端发送消息到Broker的queue中,消费Broker的queue中的消息。
2、消息发送
生产者发送消息到RocketMQ集群中的某一台Broker中的queue。
3、消息存储
生产者发送消息到RocketMQ集群中的某一台Broker中的queue。
4、消息消费
Comsumer从RocketMQ集群中某一台Broker中的queue拉取对应的消息并进行消费确认。