Skip to content

Commit de78358

Browse files
author
yangjingjing
committed
init blog
1 parent 9a8e19f commit de78358

20 files changed

Lines changed: 159 additions & 1 deletion

_posts/rocketmq/2022-01-01-RocketMQ源码(1)阅读环境准备.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(1)阅读环境准备
4+
categories: RocketMQ
5+
description: RocketMQ源码(1)阅读环境准备
6+
keywords: RocketMQ,源码
7+
---
8+
19
# 阅读环境准备
210

311
工欲善其事,必先利其器。想要阅读RocketMQ源码,首先需要确定阅读的源码版本,版本不同,其功能特性会存在区别,功能的实现细节也会存在区别。另外,还要配置RocketMQ的运行环境变量。本文主要从以下三个方面讲述阅读RocketMQ源码的准备工作:

_posts/rocketmq/2022-01-02-RocketMQ源码(2)NameServer分析.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(2)NameServer分析
4+
categories: RocketMQ
5+
description: RocketMQ源码(2)NameServer分析
6+
keywords: RocketMQ,源码
7+
---
8+
19
# 路由中心NameServer
210

311
## RocketMQ 的架构
412

5-
![rocketmq_architecture_1](/images/posts/blog/rocketmq/rocketmq_architecture_1.png)
13+
![rocketmq_architecture_1](/images/posts/blog/rocketmq**/rocketmq_architecture_1.png)
614

715
分析NameServer时,首先看下RocketMQ的架构图,RocketMQ架构主要分为四部分,如上图所示:
816

_posts/rocketmq/2022-01-03-RocketMQ源码(3)Broker启动过程分析.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(3)Broker启动过程分析
4+
categories: RocketMQ
5+
description: RocketMQ源码(3)Broker启动过程分析
6+
keywords: RocketMQ,源码
7+
---
8+
19
# Broker 启动过程分析
210

311
Broker 主要负责消息的存储,投递和查询以及保证服务的高可用。Broker负责接收生产者发送的消息并存储、同时为消费者消费消息提供支持。为了实现这些功能,Broker包含几个重要的子模块:

_posts/rocketmq/2022-01-04-RocketMQ源码(4)生产者启动过程分析.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(4)生产者启动过程分析
4+
categories: RocketMQ
5+
description: RocketMQ源码(4)生产者启动过程分析
6+
keywords: RocketMQ,源码
7+
---
8+
19
# 生产者启动过程分析
210

311
RockerMQ生产者与Name Server、Broker进行通信,从Name Server获取到Broker相关的信息,这个过程称为Broker发现,获取到Broker相关信息,就可以与Broker服务进行通信了,发送信息给Broker,Broker将接收到生产者发送的信息保存起来。我们先看看RocketMQ是如何发送信息的:

_posts/rocketmq/2022-01-05-RocketMQ源码(5)生产者发送消息分析.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(5)生产者发送消息分析
4+
categories: RocketMQ
5+
description: RocketMQ源码(5)生产者发送消息分析
6+
keywords: RocketMQ,源码
7+
---
8+
19
## 生产者发送消息流程分析
210

311
RocketMQ生产者把消息发送到Broker服务器的方法有三种:

_posts/rocketmq/2022-01-06-RocketMQ源码(6)生产者发送顺序消息分析.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(6)生产者发送顺序消息分析
4+
categories: RocketMQ
5+
description: RocketMQ源码(6)生产者发送顺序消息分析
6+
keywords: RocketMQ,源码
7+
---
8+
19
# 生产者发送顺序消息分析
210

311
在分析顺序消息之前,我们先看看什么是顺序消息?

_posts/rocketmq/2022-01-07-RocketMQ源码(7)事务消息分析.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(7)事务消息分析
4+
categories: RocketMQ
5+
description: RocketMQ源码(7)事务消息分析
6+
keywords: RocketMQ,源码
7+
---
8+
19
## RocketMQ事务消息原理概述
210

311
RocketMQ采用两阶段提交(2PC)的思想来实现事务消息,当事务消息失败或者超时,同时采用补偿的方式处理这个问题。这两个阶段分别为**正常事务消息的发送与提交以及事务消息的补偿**。我们看看官方文档给的事务消息的流程图:

_posts/rocketmq/2022-01-08-RocketMQ源码(8)Broker存储普通消息流程分析(一).md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(8)Broker存储普通消息流程分析(一)
4+
categories: RocketMQ
5+
description: RocketMQ源码(8)Broker存储普通消息流程分析(一)
6+
keywords: RocketMQ,源码
7+
---
8+
19
分析broker存储消息之前,首先回顾下生产者发送消息的流程。生产者首先通过查询缓存在本地的topic,如果本地没有缓存topic信息,就从Name Server服务器上拉取topic信息,默认轮询的方式选择topic的消息队列获取Broker Name,通过Broker Name找到Broker 地址,就知道消息应该发送到哪个Broker服务器了,RocketMQ的消息只能发送到Master Broker 服务器上。然后通过Broker 地址查找生产者与Broker服务器的channel(连接),如果连接不存在,则创建,将消息通过连接用不同的发送方式(单向、同步、异步)发送出去,这就是消息发送的大致流程了,如果想要深入消息发送流程分析,可以参考这边文章:《[RocketMQ源码之生产者发送消息分析](https://zhuanlan.zhihu.com/p/428767107)》。
210

311
那消息发送到Broker服务器以后,Broker服务器是如何处理请求的?Broker是如何存储消息的呢?

_posts/rocketmq/2022-01-09-RocketMQ源码(9)Broker存储普通消息流程分析(二).md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(9)Broker存储普通消息流程分析(二)
4+
categories: RocketMQ
5+
description: RocketMQ源码(9)Broker存储普通消息流程分析(二)
6+
keywords: RocketMQ,源码
7+
---
8+
19
在《[RocketMQ源码之Broker存储普通消息流程分析(一)](https://zhuanlan.zhihu.com/p/432299956)》这篇文章中,分析了Broker服务器是如何处理接收到请求和响应的。
210

311
在这一篇,我们来聊聊Broker接收到消息请求以后,是如何将消息存储起来的?

_posts/rocketmq/2022-01-10-RocketMQ源码(10)Broker存储批量消息流程分析.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
---
2+
layout: post
3+
title: RocketMQ源码(10)Broker存储批量消息流程分析
4+
categories: RocketMQ
5+
description: RocketMQ源码(10)Broker存储批量消息流程分析
6+
keywords: RocketMQ,源码
7+
---
8+
19
我们已经在《[RocketMQ源码之Broker存储普通消息流程分析(一)](https://zhuanlan.zhihu.com/p/432299956)》和《[RocketMQ源码之Broker存储消息流程分析(二)](https://zhuanlan.zhihu.com/p/433140646)》分析了普通消息是如何存储的,这篇文章则分析如何存储批量消息。
210

311
当Broker收到消息时,将会将消息交给SendMessageProcessor处理器处理,SendMessageProcessor处理器根据消息的类型处理不同的消息,当消息是批量消息时,会将消息交给asyncSendBatchMessage方法进行处理。asyncSendBatchMessage方法如下:

0 commit comments

Comments
 (0)