文档章节

RocketMQ源码分析——项目结构和类设计

杨武兵
 杨武兵
发布于 2016/04/19 10:56
字数 311
阅读 1248
收藏 8

项目结构

RocketMQ的源码如上,由多个maven工程组成。

多个maven工程之间的依赖关系如上图所示,从上面我们可以看出rocketmq-remoting是核心模块。



rocketmq-common

该模块是通用模块,类图就不需要画了,它主要是一些通用的数据模型、枚举和常量定义等,比较简单。

rocketmq-remoting

该模块是一个远程通讯模块,抽象出了一个基于client和server的双向通讯通用组件,两者通讯支持同步和异步两种通讯方式。

该模块默认提供了一个基于netty-all-4.0.25.Final的双向通讯实现。


rocketmq-namesrv

namesrv是RocketMQ的简单的注册中心服务。

它存储了mq运行期的临时信息。主要包括这些:

Topic列表,

Topic对应的BrokerName列表,

BrokerName包含的brokerId和brokerAddress列表等。

Cluster及BrokerName列表。

broker存活信息列表。

broker对应的过滤服务列表。




rocketmq-broker



rocketmq-store



© 著作权归作者所有

共有 人打赏支持
杨武兵

杨武兵

粉丝 248
博文 61
码字总数 123254
作品 1
昌平
架构师
消息中间件—RocketMQ的RPC通信(一)

文章摘要:借用小厮的一句话“消息队列的本质在于消息的发送、存储和接收”。那么,对于一款消息队列来说,如何做到消息的高效发送与接收是重点和关键 一、RocketMQ中Remoting通信模块概览 ...

癫狂侠
06/30
0
0
消息中间件—RocketMQ消息消费(一)

文章摘要:在发送消息给RocketMQ后,消费者需要消费。消息的消费比发送要复杂一些,那么RocketMQ是如何来做的呢? 在RocketMQ系列文章的前面几篇幅中已经对其“RPC通信部分”和“普通消息发送...

癫狂侠
08/12
0
0
消息中间件—RocketMQ的RPC通信(二)

文章摘要:如何设计RPC通信层模型是任何一款性能强劲的MQ所要重点考虑的问题 在(一)篇中主要介绍了RocketMQ的协议格式,消息编解码,通信方式(同步/异步/单向)、消息发送/接收以及异步回调...

癫狂侠
07/01
0
0
消息中间件—RocketMQ消息发送

摘要:使用客户端发送一条消息很Easy,在这背后RocketMQ完成了怎么样的操作呢? 大道至简,消息队列可以简单概括为:“一发一存一收”,在这三个过程中消息发送最为简单,也比较容易入手,适...

癫狂侠
08/05
0
0
RocketMQ(二):RPC通讯

匠心零度 转载请注明原创出处,谢谢! RocketMQ网络部署图 NameServer:在系统中是做命名服务,更新和发现 broker服务。 Broker-Master:broker 消息主机服务器。 Broker-Slave: broker 消息...

匠心零度
04/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Maven 项目中依赖的搜索顺序

ettings_mirror 的优先级高于 central settings_profile_repo 优先级高于 settings_mirror settings_profile_repo 优先级高于 pom_repositories settings_profile_repo 优先级高于 pom_prof......

xingyu4j
12分钟前
1
0
改变maven项目的名称

pom.xml <groupId>com.soft.xxx</groupId><artifactId>xxx</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>xxx Maven Webapp</name><build>......

1713716445
14分钟前
2
0
windows下按照RabbitMQ

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平...

zhaochaochao
14分钟前
2
0
10个PHP比特币开源项目

如果你是一个Phper,如果你希望学习区块链,那么本文列出的10个开源的Php比特币项目,将有助于你了解在自己的应用中如何加入对比特币的支持。 如果你希望快速掌握使用Php对接比特币钱包的方法...

笔阁
21分钟前
10
0
MyBatis级联探讨

数据模型 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper name......

职业搬砖20年
25分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部