一、事务消息的由来1、案例引用官方的购物案例:小明购买一个100元的东西,账户扣款100元的同时需要保证在下游的积分系统给小明这个账号增加100积分。账号系统和积分系统是两个独立是系统,一个要减少100元,一个要增加100积分。如下图:2、问题账号服务扣款成功了,通知积分系统也成功了,但是积分增加的时候失败了,数据不一致了。账号服务扣款成功了,但是通知积分系统失败了,所以积分不会增加,数据不一致了
转载 2024-10-10 14:09:11
67阅读
Topic首先需要提到的概念是Topic。Topic是RocketMQ中的一个重要概念,RocketMQ的各组件都是围绕着Topic建立起对应关系的。在RocketMQ官方文档和本文中, Topic在不同的语境下被赋予了两种不同的语义:消息的Topic属性值在描述Consumer的订阅设置信息或消息的属性时。Topic属性某个值的消息(单个消息消息集合)在描述Broker,Producer和C
转载 2024-10-08 13:49:26
75阅读
简介 RocketMQ 特点 RocketMQ 是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给 Apache 软件基金会,并于2017年9月25日成为 Apache 的顶级项目。作为经历过多次阿里巴巴双十一这种“超级工程”的洗礼并有稳定出色表现的国产中间件,以其高性能、低延时和高可靠等特性近年来已经也被越来越多的国内企业使用。其主要特点有: 1. 灵活可扩展性 Rock
转载 2024-10-17 11:07:01
53阅读
1 什么是延时消息消息写入到Broker后,在指定的时长后才可被消费处理的消息,称为延时消息。 采用RocketMQ的延时消息可以实现定时任务的功能,而无需使用定时器。典型的应用场景是,电商交 易中超时未支付关闭订单的场景,12306平台订票超时未支付取消订票的场景。在电商平台中,订单创建时会发送一条延迟消息。这条消息将会在30分钟后投递给后台业务系统(Consumer),后台业务系统收到该消息
文章目录前言使用RocketMQ如何保证消息不丢失?哪些环节会有丢消息的可能?RocketMQ消息零丢失方案生产者使用事务消息机制保证消息零丢失为什么要发送个half消息?有什么用?half消息如果写入失败了怎么办?订单系统写数据库失败了怎么办?half消息写入成功后RocketMQ挂了怎么办?下单成功后如何优雅的等待支付成功?事务消息机制的作用RocketMQ配置同步刷盘+Dledger主从架
摘要:RocketMQ 优异的性能表现,必然绕不开其优秀的存储模型。RocketMQ 优异的性能表现,必然绕不开其优秀的存储模型 。1 整体概览首先温习下 RocketMQ 架构。整体架构中包含四种角色 :Producer :消息发布的角色,Producer 通过 MQ 的负载均衡模块选择相应的 Broker 集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer :消息消费的角
转载 11月前
59阅读
1 消息的生产过程Producer可以将消息写入到某Broker中的某Queue中,其经历了如下过程:Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求NameServer返回该Topic的路由表及Broker列表Producer根据代码中指定的Queue选择策略,从Queue列表中选出一个队列,用于后续存储消息Produer对消息做一些特殊处理,例如,
为什么消息要具备事务能力还是比较清晰的。简单的说 就是在你业务逻辑过程中,需要发送一条消息给订阅消息的人,但是期望是 此逻辑过程完全成功完成之后才能使订阅者收到消息。业务逻辑过程 假设是这样的:逻辑部分a-->发消息给MQ-->逻辑部分b假设我们在发送消息给MQ之后执行逻辑部分b时产生了异常,那如果MQ不具备事务消息能力时,订阅者也收到了消息。这是我们不希望见到的。 分布式事务基础概念
文章目录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阅读
RocketMQ消费端有两种获取消息的方式,Push方式和Pull方式。但这两种方式都有一定的缺陷,后来采用了一种折中的方法,采用”长轮询“的方式,它既可以拥有Pull的优点,又能达到保证实时性的目的。长轮询的思想:服务端接收到新消息请求后,如果队列里没有新消息,并不急于返回,通过一个循环不断查看状态,每次waitForRunning一段时间(默认是5秒),然后再Check。Broker默认最长阻
阿里开源消息中间件 RokectMQ 基本概念  整体架构  Producer:生产者Consumer:消费者Broker:负责消息存储、投递、查询NameServer:路由注册中心。功能包括:Broker管理、路由信息管理   消息发送流程   Brok
转载 2024-07-22 16:51:55
49阅读
消费者客户端有两种方式从消息中间件获取消息并消费。严格意义上来讲,RocketMQ并没有实现PUSH模式,而是对拉模式进行一层包装,名字虽然是 Push 开头,实际在实现时,使用 Pull 方式实现。通过 Pull 不断轮询 Broker 获取消息。当不存在新消息时,Broker 会挂起请求,直到有新消息产生,取消挂起,返回新消息。1、概述1.1、PULL方式由消费者客户端主动向消息中间件(MQ消
消息生产者启动之后,我们就可以按照需要发送消息了,消息发送之前,首先需要获取主题的路由信息,只有获取了这些信息我们才知道消息要发送到具体的Broker节点。查找主题的路由信息tryToFindTopicPublishlnfo 是查找主题的路由信息的方法。如果生产者中缓存了 topic 的路由信息,如果该路由信息中包含了消息队列,则直接返回该路由信息,如果没有缓存 或没有包含消息队列, 则向 Nam
转载 2024-10-03 12:16:52
122阅读
# 解析Java集成RocketMQTemplate发送时报错objectMapper 在使用Java集成RocketMQTemplate发送消息时,可能会遇到objectMapper的报错。这个问题的根本原因是没有正确配置objectMapper导致的,下面我们将介绍这个问题的原因和解决方案。 ## 问题原因 在使用RocketMQTemplate发送消息时,需要将消息体转换为JSO
原创 2024-01-09 03:23:31
148阅读
        本篇文章将使用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 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。具有以下特点:能够保证严格的消息顺序提供丰富的消息拉取模式高效的订阅者水平扩展能力实时的消息订阅机制亿级
  • 1
  • 2
  • 3
  • 4
  • 5