RocketMQ高手之路系列:开篇

本文阅读 3 分钟
首页 代码,Java 正文

引言

本篇是RocketMQ源码阅读的开篇,主要对RocketMQ的架构以及相关目录结构进行介绍,为RocketMQ的源码阅读做一些前期准备工作。

  • 源码下载
  • 源码结构介绍
  • RocketMQ架构

一、源码下载

1、源码下载地址: RocketMQ Github 2、点击绿色按钮出现源码下载项,点击蓝色按钮进行源码下载: img 3、下载好后进行源码解压,使用Idea进行源码导入,导入后如下图所示: img

二、源码结构介绍

img 如上图所示,RocketMQ的主要源码结构包括rocketmq-broker,rocketmq-client,rocketmq-common,rocketmq-filter,rocketmq-namesrv和rocketmq-remoting等模块,各个模块的主要作用如下: rocketmq-remoting:封装MQ的通信框架,基于netty实现底层的通信; rocketmq-broker:MQ系统的核心部件,提供轻量级的主题和队列机制来进行消息存储,包括相应的容错机制,它用来接收producer以及consumer的请求,支持集群部署、同步双写、异步双写等模式,可实现消息的持久化处理; rocketmq-client:MQ的客户端,也就是producer以及consumer的统称; rocketmq-filter:消息过滤服务; rocketmq-store:存储层实现,包括索引服务等; rocketmq-common:模块间的通用功能单元,配置文件、常量等; rocketmq-distribution:脚本、配置模块,RocketMQ编译时,bin目录,benchmark目录,conf目录都是从这个模块编译输出; rocketmq-namesrv:NameServer,类似服务注册中心,broker在这里注册,consumer和producer在这里找到broker地址 rocketmq-srvutil:只有一个ServerUtil类,只提供Server程序依赖,尽可能减少客户端依赖

三、RocketMQ架构

RocketMq具有低延迟、高性能、高可靠性、万亿级别的信息容量以及灵活的可扩展性。它主要由四个部分组成:名称服务器、代理、消息生产者、消息消费者,其中每一个部分都可以进行水平扩展,保证高可用。在RocketMq的官网中找到其架构图如下所示: img NameServer主要包含两个特性: 1、Broker管理:NameServer从Broker集群中接收其的注册信息,并且通过心跳机制来检测Broker集群是否存活; 2、路由管理:每个NameServer都保存了有关Broker集群的整个路由信息以及供客户端查询的队列信息;

Broker Server主要负责消息的存储和传递、消息查询以及HA等等功能 Broker Server中包含的子模块如下所示: img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/Diamond_Tao/article/details/88729031
-- 展开阅读全文 --
大白话讲解JDK源码系列:从头到尾再讲一遍ThreadLocal
« 上一篇 01-30
KillDefender 的 Beacon 对象文件 PoC 实现
下一篇 » 02-09

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复