首页
学习
活动
专区
圈层
工具
发布

RocketMQ原理—1.RocketMQ整体运行原理

大纲1.RocketMQ整体运行原理的介绍顺序2.RocketMQ生产者是如何发送消息的3.Broker是如何持久化接收到的消息到磁盘上4.基于DLedger技术的Broker主从同步原理5.消费者进行消息拉取和消费的过程...6.消费者从Master或Slave上拉取消息的策略7.RocketMQ如何基于Netty进行高性能网络通信8.基于mmap内存映射实现磁盘文件的高性能读写9.RocketMQ的整体运行原理总结1.RocketMQ...或Slave拉取数据的策略五.消费者如何从Broker拉取消息以及进行ACK这个介绍顺序就基本涵盖了RocketMQ的整体运行流程,接下来首先分析RocketMQ生产者的工作原理。...(4)如果某个Broker出现故障了怎么办(1)创建Topic时为何要指定MessageQueue数量介绍RocketMQ生产者的工作原理之前,需要先介绍MessageQueue的概念。...9.RocketMQ的整体运行原理总结RocketMQ的一些底层原理:MessageQueue的概念、在Broker上的分布式存储、Producer写入消息的底层原理、Broker的数据存储机制、Broker

55712
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RocketMQ高级原理

    高级原理 一、基础概念 这一部分我们先来总结下RocketMQ的一些重要的基础概念: 1 消息模型(Message Model) RocketMQ主要由 Producer、Broker、Consumer...RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。...4 主题(Topic) 表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。...RocketMQ中有两种Broker架构模式: 普通集群: 这种集群模式下会给每个节点分配一个固定的角色,master负责响应客户端的请求,并存储消息。...Dledger高可用集群: Dledger是RocketMQ自4.5版本引入的实现高可用集群的一项技术,是一个第三方的技术。

    58320

    RocketMQ高级原理

    高级原理 一、基础概念 这一部分我们先来总结下RocketMQ的一些重要的基础概念: 1 消息模型(Message Model) RocketMQ主要由 Producer、Broker、Consumer...RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。...4 主题(Topic) 表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。...RocketMQ中有两种Broker架构模式: 普通集群: 这种集群模式下会给每个节点分配一个固定的角色,master负责响应客户端的请求,并存储消息。...Dledger高可用集群: Dledger是RocketMQ自4.5版本引入的实现高可用集群的一项技术,是一个第三方的技术。

    69610

    RocketMQ消息过滤实现原理

    微信公众号:PersistentCoder 内容目录 一、背景二、使用三、原理源码分析四、总结参考 一、背景 RocketMQ消息中间件相比于其他消息中间件提供了更细粒度的消息过滤,相比于Topic做业务维度的区分...消息队列RocketMQ版的生产者在发送消息时,指定消息的Tag,消费者需根据已经指定的Tag来进行订阅。...使用过RocketMQ的小伙伴会注意到该消息组件支持Tag和Sql两种过滤模式。...我们本篇重点围绕tag消息的发送和消费原理展开介绍,中间涉及到sql过滤的地方会简单做分析。...; }); 如果是使用sql过滤,订阅的时候把订阅关系改为: consumer.subscribe("Topic",MessageSelector.bySql("name = 'xxx'")); 三、原理源码分析

    85240

    RocketMQ原理分析&场景问题

    一、RocketMQ的基本原理 RocketMQ基本架构图如下 从这个架构图上我们可以知道,RocketMQ有4块核心部分: NameServer:管理Broker的信息,让使用MQ的系统感知到集群里面的...6.1.2 RocketMQ的事务消息原理分析 为了解决系统推送消息丢失问题,RocketMQ有一个非常强悍的功能就是事务消息,能够确保我们消息一定会成功写入MQ里面,不会半路搞丢。...RocketMQ解决方案: 利用消息监听器同步处理消息 在RocketMQ的Consumer的默认消费模式下,我们在消息监听器中接收到一批消息之后,会执行处理消息的逻辑,处理完成之后才会返回SUCCESS...这样的中间件去监听订单数据的binlog,然后把这个binlog发到MQ中去,然后我们的大数据系统自己用MQ里获取binlog,自己在自己的大数据存储中执行增删改查操作,得到我们需要的报表,如图下: 6.5.2 乱序问题原理分析...针对这种场景,RocketMQ的延迟消息就登场了。

    2.2K30

    消息队列| RocketMQ 核心原理

    RocketMQ CommitLog 文件使用顺序写,极大提高了文件的写性能。...RocketMQ 解决该问题的策略是引入消费端的限流机制。 RocketMQ 消息消费端的限流的两个维度: A....RocketMQ事务消息的实现原理是类似基于二阶段提交与事务状态回查来实现的。事务消息的发送只支持同步方式,其实现的关键点包括: A....消息服务端会开启一个专门的线程,以每60s的频率从RMQ_SYS_TRANS_OP_HALF_TOPIC中拉取一批消息,进行事务状态的回查,其实现原理是根据消息所属的消息生产者组名随机获取一个生产者,向其询问该消息对应的本地事务是否成功...以上只是 RocketMQ 所有核心的一部分,在文章的结尾处,我想再分享一下我学习 RocketMQ的一些心得: A. 通读 RocketMQ 官方文档,从全局上了解 RocketMQ。 B.

    3.8K31

    RocketMq之事务消息实现原理

    RocketMQ提供了事务消息的功能,采用2PC(两段式协议)+补偿机制(事务回查)的分布式事务功能,通过消息队列 RocketMQ 版事务消息能达到分布式事务的最终一致。...消息回查: 由于网络闪断、生产者应用重启等原因,导致某条事务消息的二次确认丢失,消息队列 RocketMQ 版服务端通过扫描发现某条消息长期处于“半事务消息”时,需要主动向消息生产者询问该消息的最终状态...事务消息发送步骤如下: 发送方将半事务消息发送至消息队列 RocketMQ 版服务端。...消息队列 RocketMQ 版服务端将消息持久化成功之后,向发送方返回 Ack 确认消息已经发送成功,此时消息为半事务消息。 发送方开始执行本地事务逻辑。...思考 RocketMQ是怎么保证半消息(prepare)不被消费者消费呢? 事务消息的回滚操作是怎么实现的? 事务commit后,怎么让消息对消费者可见呢?

    3.8K51

    RocketMQ事务消息原理简析

    当然也可以用现成的解决方案,RocketMQ从4.3.0版本开始,支持事务消息。...我们只需要编写对应的本地事务执行方法executeLocalTransaction和本地事务执行结果检查方法checkLocalTransaction,RocketMQ会自动调用本地事务执行。...如果本地事务执行成功,下游才能消费到消息,如果本地事务执行失败,下游是无法感知到这条消息的一、使用方法使用RocketMQ发送事务消息,只有消息发送和普通消息发送有所区别。...PRODUCER_GROUP);producer.setNamesrvAddr(DEFAULT_NAMESRVADDR);// 创建一个线程池 用于Broker回查本地事务执行状态 如果这里没有创建,RocketMQ...Broker会删除消息,下游感知不到消息LocalTransactionState.UNKNOW:事务的执行结果未知,比如事务还在执行中,稍后Broker会回重复回查,直到超过最大时间或者最大次数二、原理解析

    81230

    深度解析RocketMQ的背后原理

    RocketMQ 作为消息队列中的佼佼者,其地位堪比数据库领域的 MySQL,成为技术选型的首选。无论是架构师还是技术求职者,理解其核心原理都是十分必要的。...RocketMQ 主题模型在分布式应用中,消息传递的效率和可靠性至关重要,而消息队列技术正是解决这些问题的关键工具。RocketMQ 作为一种高效的消息队列系统,其主题模型是理解其工作原理的基础。...讲到这里,我想到 RocketMQ 一个很经典的面试题,那就是,RocketMQ 是如何保证顺序性的?...RocketMQ 存储RocketMQ 的存储实现核心文件为 CommitLog 和 ConsumeQueue。...总结今天我们一起学习了 RocketMQ 原理。通过学习 RocketMQ,我们知道了 RocketMQ 是基于主题模型的,而主题是通过多个队列来实现的。

    1.1K00
    领券