万字聊一聊RocketMQ一条消息短暂而又精彩的一生大家好,我是三友~~ 这篇文章我准备来聊一聊RocketMQ消息的一生。 不知你是否跟我一样,在使用RocketMQ的时候也有很多的疑惑: 消息是如何发送的,队列是如何选择的? 消息是如何存储的,是如何保证读写的高性能? RocketMQ是如何实现消息的快速查找的? RocketMQ是如何实现高可用的? 消息是在什么时候会被清除? ... 本文就通过探讨上述问题来探秘消息在RocketMQ中短暂而 开发运维 2024-06-04 爱可生开源社区
MQ选型:一文详解Kafka与RocketMQ区别引言 在做MQ技术选型的时候,Kafka和RocketMQ是常用的两个消息队列中间件,今天就从架构设计、性能分析、使用场景来比较一下两者的区别,到底该使用哪个MQ? Kafka最初由LinkedIn开发,后来成为Apache的一个顶级项目,它设计之初就是为处理大规模数据而生,特别擅长于高吞吐量的场景。Kafka广泛应用于日志收集、流式处理、事件驱动架构等多种场景,被许多知名企业采用,如Netfli 开发运维 2024-05-31 爱可生开源社区
RocketMQ 是什么?它的架构是怎么样的?和 Kafka 又有什么区别?作为一个程序员,假设你有 A、B 两个服务,A 服务发出消息后,不想让 B 服务立马处理到。而是要过半小时才让 B 服务处理到,该怎么实现? 这类延迟处理消息的场景非常常见,举个例子,比如我每天早上到公司后都会点个外卖,我希望外卖能在中午送过来,而不是立马送过来,这就需要将外卖消息经过延时后,再投递到商家侧。 那么问题就来了,有没有优雅的解决方案?当然有,没有什么是加一层中间层不能解决的,如果有, 开发运维 2024-05-22 张二河
如何实现一个简单易用的 RocketMQ SDK2018 年,做为架构负责人,接到一个架构需求:实现一个简单易用的 RocketMQ SDK 。 因为各个团队 RocketMQ 原生客户端配置起来千奇百怪,有的配置存在风险,各团队负责人都需要一个简洁易用的 RocketMQ SDK 。 我立马调研相关开源的方案,当时 RocketMQ-Spring 项目并没有开源,而阿里云的 ONS SDK 是开源的,我只能讲目标转向 阿里云 ONS 。 通过 开发运维 2024-05-07 三掌柜
基于 RocketMQ Connect 构建数据流转处理平台导读:为什么在“双11”抢红包活动及大型数据系统中总是出现 RocketMQ 的身影? RocketMQ Connect在RocketMQ生态中扮演什么角色?本文根据Apache RocketMQ Committer周波的演讲整理,为大家解决上述疑问。同时,介绍 OceanBase 与 RocketMQ 如何集成以及能帮助大家解决哪些问题。 从问题中来的RocketMQ Connect 在电商系统 数据运维 2024-05-07 LOVEHL^ˇ^
RocketMQ 事件驱动:云时代的事件驱动有啥不同?作者:林清山(隆基) 前言: 从初代开源消息队列崛起,到 PC 互联网、移动互联网爆发式发展,再到如今 IoT、云计算、云原生引领了新的技术趋势,消息中间件的发展已经走过了 30 多个年头。 目前,消息中间件在国内许多行业的关键应用中扮演着至关重要的角色。随着数字化转型的深入,客户在使用消息技术的过程中往往同时涉及交叉场景,比如同时进行物联网消息、微服务消息的处理,同时进行应用集成、数据集成、实时 云运维 2024-04-16 大白菜程序猿
RocketMQ 流存储解析:面向流场景的关键特性与典型案例作者:林清山(隆基) 前言: 从初代开源消息队列崛起,到 PC 互联网、移动互联网爆发式发展,再到如今 IoT、云计算、云原生引领了新的技术趋势,消息中间件的发展已经走过了 30 多个年头。 目前,消息中间件在国内许多行业的关键应用中扮演着至关重要的角色。随着数字化转型的深入,客户在使用消息技术的过程中往往同时涉及交叉场景,比如同时进行物联网消息、微服务消息的处理,同时进行应用集成、数据集成、实时 云运维 2024-03-21 泡泡
RocketMQ为什么这么快?我从源码中扒出了10大原因!大家好,我是三友~~ RocketMQ作为阿里开源的消息中间件,深受广大开发者的喜爱 而这其中一个很重要原因就是,它处理消息和拉取消息的速度非常快 那么,问题来了,RocketMQ为什么这么快呢? 接下来,我将从以下10个方面来探讨一下RocketMQ这么快的背后原因 图片 如果你对RocketMQ还不了解,可以从公众号后台菜单栏中查看我之前写的关于RocketMQ的几篇文章 如果你对Rocket 开发运维 2024-03-12 大白菜程序猿
常用环境部署—Docker安装RocketMQ教程!在Docker中安装RocketMQ的过程如下所示: 创建Docker网络: 在终端中执行以下命令来创建Docker网络,以便在容器之间进行通信: docker network create rocketmq-network 下载RocketMQ镜像: 在终端中执行以下命令来下载RocketMQ的Docker镜像: docker pull rocketmqinc/rocketmq 启动Name S 系统运维 2024-03-06 张二河
使用 SkyWalking 监控 RocketMQ ServerSkyWalking 10.0 引入了新的 RocketMQ 监控面板,本文将演示该监控面板的使用。 By 邵一鸣 | Thursday, February 29, 2024 背景介绍 Apache RocketMQ 是一个开源的低延迟、高并发、高可用、高可靠的分布式消息中间件, 从SkyWalking OAP 10.0 版本开始, 新增了 对 RocketMQ Server的监控面板。本文将展示 云运维 2024-03-02 大白菜程序猿
ChatGPT是如何回答MQ中Topic与Queue的区别的?前言 项目中需要调研RocketMQ的一些功能特性和使用,于是尝试通过与ChatGPT对话的形式来达到这一目的。 这篇文章是与ChatGPT对话,获得在RocketMQ中Topic与Queue的使用区别?以及它们在RocketMQ中的一些特性。 通过这篇文章,大家不仅可以学习到「RocketMQ中Topic与Queue的使用区别」这一技术点,还可以通过对应的问答了解如何与ChatGPT沟通交流,快 开发运维 2024-02-26 LOVEHL^ˇ^
RocketMQ基于Kosmos实现AZ级高可用,你学会了吗?一、背景 RocketMQ无论采用Master/Slave的主从模式,还是采用Dledger的多副本模式,均能保证RocketMQ集群的高可用性,但在一些极端场景下,例如机房断电、机房火灾、地震等不可抗拒因素使得该IDC可用区的RocketMQ集群无法正常对外提供消息服务能力。因此,为了增强抗风险能力,消息队列RocketMQ集群多活异地容灾极为重要。 二、物理部署异地容灾方案 图2-1 物理部署 开发运维 2024-02-01 泡泡
实战与原理:如何基于RocketMQ实现分布式事务?使用事务消息 在DailyMart系统中,用户发起支付后,订单系统需要调用库存服务执行库存扣减逻辑。 由于这是跨服务调用,因此会产生分布式事务。在这里,我们使用RocketMQ的事务消息来实现分布式事务。 1、首先,在订单服务的应用服务层处理支付逻辑,并调用RocketMQ发送事务消息: @Override public String payment(String orderSn) { // to 开发运维 2024-01-26 竹子爱熊猫
谈谈 RocketMQ 5.0 分级存储背后一些有挑战的技术优化作者:斜阳 RocketMQ 5.0 提出了分级存储的新方案,经过数个版本的深度打磨,RocketMQ 的分级存储日渐成熟,并成为降低存储成本的重要特性之一。事实上,几乎所有涉及到存储的产品都会尝试转冷降本,如何针对消息队列的业务场景去做一些有挑战的技术优化, 是非常有意思的事。 这篇文章就跟大家探讨下,在消息系统这样一个数据密集型应用的模型下,技术架构选型的分析与权衡,以及分级存储实现与未来演进 云运维 2024-01-25 大猫
消费者太多!RocketMQ又炸了!1、问题现象 先说明下RocketMQ版本, 4.6.0的老版本了。 线下环境客户端启动会频繁报错响应超时,导致consumer实例化失败,无法启动应用。 图片 2、排查 确认线下环境RocketMQ集群流量、生产消费数量无异常。 集群gc次数不多,但是耗时高。(原本监控看板异常数据缺失,所以少了前面一段) 图片 master节点cpu使用率、load极高。 图片 升配,4c8g升级8c32g,扩 开发运维 2024-01-24 Escape
RocketMQ 中冷热分离的随机索引模块详解作者:苏昌盛 消息系统中随机索引的特点 RocketMQ 广泛使用于各类业务场景中,在实际生产场景中,用户通常会选择消息 ID 或者特定的业务 Key(例如学号,订单号)来查询和定位特定的一批消息,进而定位分布式系统中的复杂问题。传统方案下,消息索引的存储是基于数据库系统或者基于本地文件系统实现的,受限于磁盘容量,很难满足海量数据的写入诉求。 在云原生场景下,对象存储能够为用户提供弹性和按量付费的 云运维 2024-01-18 大猫
【深入浅出RocketMQ原理及实战「底层原理挖掘系列」打造新一代云原生"消息、事件、流"统一消息引擎的融合处理平台云原生架构 在技术视角下,云原生架构是由一系列针对云原生技术的设计原则和模式构成,其主要目标是在云应用中去除最大限度的非业务代码部分,从而将这些非功能性特性(比如弹性、韧性、安全性、可观察性、灰度等)交由云基础设施来管理。这不仅消除了非功能性业务中断的问题,而且为业务赋予了轻量化、灵活性以及高度自动化的特质。 云原生架构可以理解为是云计算中天生的设计模式,它的“生命力”源自云计算技术,没有云计算, 云运维 2024-01-10 贤蛋大眼萌
九个问答牢记RocketMQ架构RocketMQ是Java兄弟们常用的消息中间件,虽说常用,但对于RocketMQ架构经常忘记。究其原因就2点:忙于业务开发然后长时间不看则忘了、不理解架构设计的根本原因记不牢。本文用大白话描述架构设计过程,牢记RocketMQ架构。 一、架构的思考过程 首先,在记框架的原理和架构时,要先把握全局的脉络,在思考为什么这么设计,最后才是思考细节,这样才能记得牢。本文通过层层追问的方式,一步步解说Ro 开发运维 2023-12-27 大树
大白话设计RocketMQ延迟消息延迟消息一般用于:提前发送消息,延迟一段时间后才需要被处理的场景。比如:下单半小时后还未支付,则取消订单 释放库存 等。 RocketMQ的延迟消息使用上非常便捷,但是不支持任意时间的延迟,这一点对于有强迫症的朋友来说就比较难受,但是搞明白为什么这么设计后,就自然释怀了。 为什么RocketMQ不支持任意时间的延时?为什么延迟时间只能是从1s 5s 10s 30s 1m 2m 3m 4m 5m 6 开发运维 2023-12-26 张二河
分布式场景下的事务机制事务消息是RocketMQ的一个非常特色的高级特性,它的基础诉求是通过RocketMQ的事务机制,来保证上下游的数据⼀致性。 我们在单机版本下面只需要在业务方法上加上对应的事务就可以达到效果,但是分布式的场景下,多个系统之间的协调配合,你无法知道到底是那个先执行那个后执行,当然在微服务里面存在Seate框架来保证事务,但是这事务的保证始终是心头大患,只能用一句话形容鱼和熊掌不可兼得。 而Rocke 开发运维 2023-12-26 向阳逐梦