文章目录1.MQ简述2.MQ的用途2.1 限流削峰2.2 异步解耦2.3数据收集3.常见的MQ产品4.MQ常用的协议5.RockerMQ的安装与启动5.1消息(Message)5.2主题(Topic)5.3 标签(tag)官方定义:5.4队列(queue)5.4.1分片5.5消息标识5.6系统架构5.6.1生产者(producer)5.6.1消费者(consumer)5.6.2命名服务中心(Na
转载
2024-10-17 09:23:25
32阅读
阿里开源消息中间件 RokectMQ
基本概念 整体架构 Producer:生产者Consumer:消费者Broker:负责消息存储、投递、查询NameServer:路由注册中心。功能包括:Broker管理、路由信息管理 消息发送流程 Brok
转载
2024-07-22 16:51:55
49阅读
在RocketMQ4.3.0版本后,开放了事务消息这一特性,对于分布式事务而言,最常说的还是二阶段提交协议,那么RocketMQ的事务消息又是怎么一回事呢,这里主要带着以下几个问题来探究一下RocketMQ的事务消息: 事务消息是如何实现的 我们有哪些手段来监控事务消息的状态 事务消息的异常恢复机制 RocketMQ的事务消息是如何实现的RocketMQ作为一款消息中间件,主要作用就是帮助
前言最近有看分布式的事务相关的内容。之前有配置过XA模式的分布式事务。然后又刚好看了有关rocketmq的最终一致性的相关方案。决定实践一下逻辑实现1、A 系统先发送一个 prepared 消息到 mq,如果这个 prepared 消息发送失败那么就直接取消操作别执行了; 2、如果这个消息发送成功过了,那么接着执行本地事务,如果成功就告诉 mq 发送确认消息,如果失败就告诉 mq 回滚消息; 3、
转载
2024-06-05 13:47:26
306阅读
研究下其简单使用。0. pom<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.8.0</version>
</dependenc
转载
2024-07-17 21:00:03
205阅读
1. 概念 Producer端重试: 生产者端的消息失败,也就是Producer往MQ上发消息没有发送成功,比如网络抖动导致生产者发送消息到MQ失败。 这种消息失败重试我们可以手动设置发送失败重试的次数。 Consumer端重试: Consumer消费消息失败后,要提供一种重试机制,令消息再消费一次,Consumer消费消息失败通常可以认为有以下几种情况 1. 由于消息本身的原
简单总结:通过保证“消息发送”与本地事务的原子性,而消息的订阅则交由MQ本身的机制实现。执行流程说明:Producer向borker发送消息;服务端将消息持久化后,向发送方确认消息已经发送成功后,此事为半消息。发送方开始执行本地事务逻辑。发送方根据本地事务执行结果向服务端二次确认(Commit或者Rollback),服务端收到commit状态则半消息标志为可投递,订阅方最终收到消息;服务端收到ro
转载
2024-03-25 08:12:43
125阅读
1 什么是延时消息当消息写入到Broker后,在指定的时长后才可被消费处理的消息,称为延时消息。 采用RocketMQ的延时消息可以实现定时任务的功能,而无需使用定时器。典型的应用场景是,电商交 易中超时未支付关闭订单的场景,12306平台订票超时未支付取消订票的场景。在电商平台中,订单创建时会发送一条延迟消息。这条消息将会在30分钟后投递给后台业务系统(Consumer),后台业务系统收到该消息
摘要:RocketMQ 优异的性能表现,必然绕不开其优秀的存储模型。RocketMQ 优异的性能表现,必然绕不开其优秀的存储模型 。1 整体概览首先温习下 RocketMQ 架构。整体架构中包含四种角色 :Producer :消息发布的角色,Producer 通过 MQ 的负载均衡模块选择相应的 Broker 集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer :消息消费的角
1 消息的生产过程Producer可以将消息写入到某Broker中的某Queue中,其经历了如下过程:Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求NameServer返回该Topic的路由表及Broker列表Producer根据代码中指定的Queue选择策略,从Queue列表中选出一个队列,用于后续存储消息Produer对消息做一些特殊处理,例如,
为什么消息要具备事务能力还是比较清晰的。简单的说 就是在你业务逻辑过程中,需要发送一条消息给订阅消息的人,但是期望是 此逻辑过程完全成功完成之后才能使订阅者收到消息。业务逻辑过程 假设是这样的:逻辑部分a-->发消息给MQ-->逻辑部分b假设我们在发送消息给MQ之后执行逻辑部分b时产生了异常,那如果MQ不具备事务消息能力时,订阅者也收到了消息。这是我们不希望见到的。 分布式事务基础概念
RocketMQ消费端有两种获取消息的方式,Push方式和Pull方式。但这两种方式都有一定的缺陷,后来采用了一种折中的方法,采用”长轮询“的方式,它既可以拥有Pull的优点,又能达到保证实时性的目的。长轮询的思想:服务端接收到新消息请求后,如果队列里没有新消息,并不急于返回,通过一个循环不断查看状态,每次waitForRunning一段时间(默认是5秒),然后再Check。Broker默认最长阻
消费者客户端有两种方式从消息中间件获取消息并消费。严格意义上来讲,RocketMQ并没有实现PUSH模式,而是对拉模式进行一层包装,名字虽然是 Push 开头,实际在实现时,使用 Pull 方式实现。通过 Pull 不断轮询 Broker 获取消息。当不存在新消息时,Broker 会挂起请求,直到有新消息产生,取消挂起,返回新消息。1、概述1.1、PULL方式由消费者客户端主动向消息中间件(MQ消
消息生产者启动之后,我们就可以按照需要发送消息了,消息发送之前,首先需要获取主题的路由信息,只有获取了这些信息我们才知道消息要发送到具体的Broker节点。查找主题的路由信息tryToFindTopicPublishlnfo 是查找主题的路由信息的方法。如果生产者中缓存了 topic 的路由信息,如果该路由信息中包含了消息队列,则直接返回该路由信息,如果没有缓存 或没有包含消息队列, 则向 Nam
转载
2024-10-03 12:16:52
122阅读
本篇文章将使用RocketMQ以三种方式发送消息:可靠的同步,可靠的异步和单向传输。并介绍下负载均衡模式与广播模式的区别:(1)同步发送消息: 在重要的通知消息,SMS通知,SMS营销系统等广泛的场景中使用可靠的同步传输。 生产者代码:/**
* 发
RocketMQ 介绍RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。 具有以下特点:能够保证严格的消息顺序提供丰富的消息拉取模式高效的订阅者水平扩展能力实时的消息订阅机制亿
转载
2024-09-20 10:05:25
88阅读
1.消息队列介绍 消息队列本质上来说是一个符合先进先出原则的单向队列:一方发送消息并存入消息队列尾部(生产者投递消息),一方从消息队列的头部取出消息(消费者消费消息)。但对于一个成熟可靠的消息队列来说,所需要解决的主要问题还包括:高效可靠的消息投递、存储;能承受高并发的流量冲击,可通过集群部署来解决单点故障等等。 由于消息队列具备了以上特点,因此在如今的微服务架构中能够作为一种中间件,提供许多
转载
2024-09-23 12:37:34
71阅读
1. 前言本篇主要从源码分析消息的发送及存储。rocketmq发送消息分为三种实现方式:可靠同步发送、可靠异步发送、单向发送。目前的MQ中间件从存储模型来看,分为需要持久化和不需要持久化两种。本篇文章会分析rocketmq的消息存储机制。2. RocketMQ 消息先看看rocketmq 消息封装类org.apache.rocketmq.common.message.Message基本属性:主题t
本文为您介绍 Apache RocketMQ 中消息的存储机制,包括消息的存储粒度、判断依据及后续处理策略等。背景信息参考 Apache RocketMQ 中队列的定义,消息按照达到服务器的先后顺序被存储到队列中,理论上每个队列都支持无限存储。但是在实际部署场景中,服务端节点的物理存储空间有限,消息无法做到永久存储。因此,在实际使用中需要考虑以下问题,消息在服务端中的存储以什么维度为判定条件?消息
转载
2024-10-22 10:47:33
107阅读
RocketMQ 介绍RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。具有以下特点:能够保证严格的消息顺序提供丰富的消息拉取模式高效的订阅者水平扩展能力实时的消息订阅机制亿级