RocketMQ核心链路图示

本文概述了RocketMQ中的关键组件如NameServer的功能、发送/消费机制,包括普通/顺序/延迟消息流程,事务消息的核心流程,以及broker的主从同步策略。还介绍了主从读取消息策略和Dledger状态机的RAFT选举流程。通过流程图深入解析,旨在帮助理解RocketMQ运行原理。
摘要由CSDN通过智能技术生成

目录

nameServer主要功能及发送、消费者发送、消费的重平衡机制

普通、顺序、延迟消息主要流程

事务消息核心流程

broker主从相关

主从读取消息:

从节点同步topic、消费偏移量等信息

Dledger状态机基于RAFT一致性协议的选举流程


最近一直在结合着RocketMQ技术内幕学习rocketMQ源码,看完之后有了大概的认识,为了加深印象和树立大致的rocketMQ的运行流程,所以整理了几个MQ的核心流程图,包含了通常的消息的流转脉络,希望自己以后温故知新的同时,发出来给大家评判,如果有些细节意见不同,欢迎留言,一起探讨,共同进步。

nameServer主要功能及发送、消费者发送、消费的重平衡机制

普通、顺序、延迟消息主要流程

补充:上图同步刷盘时间间隔是10ms,不是10s

事务消息核心流程

broker主从相关

主从同步数据

从服务器间隔5秒,将当前commitLog的最大偏移量作为参数请求主服务器,去拉取单次最大32KB的消息数据,对于从服务器来说,是发送下次待拉取消息的偏移量,而对于主服务器来说,既可以认为是从服务器本次请求拉取的消息偏移量,也可以理 解为从服务器的消息同步ACK确认消息,得到返回的数据后添加commitLog中,唤醒ReputMessageService,去执行异步的consume Queue、IndexFile的异步添加(consumerQueue、IndexFile异步落盘,consumerQueue一秒一次,IndexFile生成新文件的时机将indexFile落盘)

主从读取消息:

diff > memory时建议下次从从服务器拉取
(剩余需要拉取的消息的偏移量值 > memory总物理内存40%的数据量 ,表示主服务器繁忙,此时才建议从从服务器拉取消息)
如果主服务器繁忙则建议下一次从从服务器拉取消息,设置suggestWhichBrokerId为配置文件中的 whichBrokerWhenConsumeSlowly属性,默认为1。如果一个主服务器拥 有多台从服务器,参与消息拉取负载的从服务器只会是其中一个 

从节点同步topic、消费偏移量等信息

handleSlaveSynchronize启动的间隔10s发起syncAll()请求,向主broker发起topic、消费偏移量的最新数据同步请求。

Dledger状态机基于RAFT一致性协议的选举流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺仔丷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值