首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

RocketMQ高级原理

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

39320

RocketMQ高级原理

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

52410

RocketMQ消息过滤实现原理

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

52240

消息队列| RocketMQ 核心原理

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

3.5K31

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的延迟消息就登场了。

1.1K30

RocketMq之事务消息实现原理

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

3.1K51

RocketMQ事务消息原理简析

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

55530

RocketMQ 设计原理与最佳实践

原理:大事务 = 小事务 + 异步」 「1.MQ与DB一致性原理(两方事务)」 流程图 上图是RocketMQ提供的保证MQ消息、DB事务一致性的方案。...「RocketMQ 实现顺序消费的原理」:produce在发送消息的时候,把消息发到同一个队列(queue)中,消费者注册消息监听器为MessageListenerOrderly,这样就可以保证消费端只有一个线程去消费消息...原理」 produce在发送消息的时候,把消息发到同一个队列(queue)中,消费者注册消息监听器为MessageListenerOrderly,这样就可以保证消费端只有一个线程去消费消息。 「3....RocketMQ架构原理 对于RocketMQ先抛出几个问题: RocketMQ的topic和队列是什么样的,和Kafka的分区有什么不同?...我们先看下在RocketMQ中定时任务原理图: Step1:Producer在自己发送的消息上设置好需要延时的级别。

1K20

Kafka和RocketMQ实现原理对比

既然有了Kafka为什么还会出现RocketMQ?这就不得不提到RocketMQ的诞生动机了,在RocketMQ的官网上面可以找到这个问题答案,原文可以点击此处阅读。...本文也就以该主题来对Kafka和RocketMQ内部实现原理做一些对比。主要下面四个方面对比: 1. 系统架构对比 2. 单机数据存储模型对比 3. 集群数据同步方案对比 4....提升性能的优化技巧对比 本章内容目录如下所示: Kafka和RocketMQ实现原理对比 1.系统架构对比 1.1 整体架构对比 1.2 数据组织结构对比 2.单机存储模型对比 2.1 Kafka存储模型设计...RocketMQ数据组织结构 RocketMQ集群通常是由多个内部小集群构成。.../docs/motivation/ RocketMQ设计文档(design) 消息中间件—Kafka数据存储(一) 【kafka原理】Kafka生产者 (分区策略和ACK应答机制) RocketMQ运维管理

1.1K10
领券