记一次RocketMQ消费非顺序消息引起的线上事故
应用场景 C端用户提交工单、工单创建完成之后、会发布一条工单创建完成的消息事件(异步消息)、MQ消费者收到消息之后、会通知各处理器处理该消息、各处理器处理完后都会发布一条将该工单写入搜索引擎的消息、最终该工单出现在搜索引擎、被工单处理人检索和处理。 事故异常体现 1、异常体现 从工单的流转记录...[2024/7/1]
【主流技术】聊一聊消息队列 RocketMQ 的基本结构与概念
目录前言一、初识 RocketMQ1.1基本模型二、基本概念2.1Producer2.2Consumer2.3Topic2.4Tag2.5Me age2.6Broker2.7Pull Consumer2.8Producer Group2.9Consumer Group2.10Ordered Me...[2024/6/25]
RocketMq开启安全认证ACL-解决服务器系统安全漏洞
1、为什么要开启ACL 通过之前的文章我们已经知道怎么安装RocketMq了。如果你还不会安装RocketMq可以查看我的这篇文章:快速入门一篇搞定RocketMq-实现微服务实战落地 进行软件安装,附文章地址:https: www.cnblogs.com owler/p/18173752 。...[2024/5/21]
RocketMQ—RocketMQ消费重试和死信消息
RocketMQ—RocketMQ消费重试和死信消息 消费重试 生产者重试 设置重试的代码如下 失败的情况重发3次 producer.setRetryTimesWhenSendFailed(3); 消息在1S内没有发送成功,就会重试 producer.send(msg, 1000); ...[2024/2/18]
RocketMQ—RocketMQ发送同步、异步、单向、延迟、批量、顺序、批量消息、带标签消息
RocketMQ—RocketMQ发送同步、异步、单向、延迟、批量、顺序、批量消息、带标签消息 发送同步消息 生产者发送消息,mq进行确认,然后返回给生产者状态。这就是同步消息。 前文demo程序就是发送的同步消息。 发送异步消息 异步消息通常用在对响应时间敏感的业务场景,即发送端不能容...[2024/2/5]
一文讲透消息队列RocketMQ实现消费幂等
这篇文章,我们聊聊消息队列中非常重要的最佳实践之一:消费幂等。 1 基础概念 消费幂等是指:当出现 RocketMQ 消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统产生任何负面影响。 例如,在支付场景下,消费者消费扣款消息,对一笔订单...[2023/12/18]
【RocketMQ】数据的清理机制
Broker在启动的时候会注册定时任务,定时清理过期的数据,默认是每10s执行一次,分别清理CommitLog文件和ConsumeQueue文件: public cla DefaultMe ageStore implements Me ageStore { CommitLog清...[2023/10/23]
RocketMQ 消息重试与死信队列
RocketMQ 消息重试与死信队列 RocketMQ 前面系列文章如下: RocketMQ系列(一) 基本介绍 RocketMQ 系列(二) 环境搭建 RocketMQ 系列(三) 集成 SpringBoot RocketMQ 系列(四) 消息存储 RocketMQ 系列(五)高可用与负...[2023/9/18]
【RocketMQ】【源码】延迟消息实现原理
RocketMQ设定了延迟级别可以让消息延迟消费,延迟消息会使用SCHEDULE_TOPIC_XXXX这个主题,每个延迟等级对应一个消息队列,并且与普通消息一样,会保存每个消息队列的消费进度(delayOffset.json中的offsetTable): public cla Me ageS...[2023/9/15]
RocketMQ 系列(五)高可用与负载均衡
RocketMQ 系列(五)高可用与负载均衡 RocketMQ 前面系列文章如下: RocketMQ系列(一) 基本介绍 RocketMQ 系列(二) 环境搭建 RocketMQ 系列(三) 集成 SpringBoot RocketMQ 系列(四) 消息存储 上一篇讲了 RocketM...[2023/9/14]
【RocketMQ】消息的拉取总结
在上一讲中,介绍了消息的存储,生产者向Broker发送消息之后,数据会写入到CommitLog中,这一讲,就来看一下消费者是如何从Broker拉取消息的。 RocketMQ消息的消费以组为单位,有两种消费模式: 广播模式:同一个消息队列可以分配给组内的每个消费者,每条消息可以被组内的消费者进...[2023/9/10]
在.NET Framework中使用RocketMQ(阿里云版)实战【第一章】
章节 第一章:https: www.cnblogs.com/kimiliucn/p/17662052.html 第二章: 作者:西瓜程序猿 主页传送门:https: www.cnblogs.com/kimiliucn/ 开发背景 在开发某一个需求的时候,领导要求使用Ro...[2023/8/29]
RocketMQ系列(一) 基本介绍
RocketMQ系列(一) 基本介绍 1、MQ 作用 MQ 的应用场景主要包含以下 3 个方面: 1.1、异步与解耦 当我们下了一个订单之后,订单服务会进行 RPC 同步调用 支付服务、库存服务、物流服务等,那么服务之间就会有耦合性,耦合性越高的话,容错性就越低,比如我们的支付服务如果宕机了,...[2023/8/29]
聊聊 RocketMQ 名字服务
NameServer 是专为 RocketMQ 设计的轻量级名字服务,它的源码非常精简,八个类 ,少于1000行代码。 这篇文章, 笔者会从基础概念、Broker发送心跳包、NameServer 维护路由、Zookeeper vs NameServer 四个模块揭秘名字服务的设计精髓。 1...[2023/8/7]
万字长文讲透 RocketMQ 4.X 消费逻辑
RocketMQ 是笔者非常喜欢的消息队列,4.9.X 版本是目前使用最广泛的版本,但它的消费逻辑相对较重,很多同学学习起来没有头绪。 这篇文章,笔者梳理了 RocketMQ 的消费逻辑,希望对大家有所启发。 1 架构概览 在展开集群消费逻辑细节前,我们先对 RocketMQ 4.X 架...[2023/6/7]
详解RocketMQ 顺序消费机制
摘要:顺序消息是指对于一个指定的 Topic ,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发布的消息先消费,后发布的消息后消费。 本文分享自华为云社区《RocketMQ 顺序消费机制》,作者: 勇哥java实战分享 。 顺序消息是指对于一个指定的 Topic ,消息严格按照...[2023/5/30]
RocketMQ 顺序消费机制
顺序消息是指对于一个指定的 Topic ,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发布的消息先消费,后发布的消息后消费。 顺序消息分为分区顺序消息和全局顺序消息。 1、分区顺序消息 对于指定的一个 Topic ,所有消息根据 Sharding Key 进行区块分区,同...[2023/5/29]
【RocketMQ】NameServer总结
NameServer是一个注册中心,提供服务注册和服务发现的功能。NameServer可以集群部署,集群中每个节点都是对等的关系(没有像ZooKeeper那样在集群中选举出一个Master节点),节点之间互不通信。 服务注册 Broker启动的时候会向所有的NameServer节点进行注册,...[2023/5/26]
RocketMQ的简单使用
大家好,我是Leo!今天来和大家分享RocketMQ的一些用法。 领域模型介绍 Producer: 用于生产消息的运行实体。 Topic: 主题,用于消息传输和存储的分组容器。 Me ageQueue: 消息传输和存储的实际单元容器。 Me age: 消息传输的最小单元。 Co...[2023/5/4]
SpringBoot整合RocketMQ,老鸟们都是这么玩的!
今天我们来讨论如何在项目开发中优雅地使用RocketMQ。本文分为三部分,第一部分实现SpringBoot与RocketMQ的整合,第二部分解决在使用RocketMQ过程中可能遇到的一些问题并解决他们,第三部分介绍如何封装RocketMQ以便更好地使用。 1. SpringBoot整合Rocke...[2023/4/10]
太坑了,我竟然从RocketMQ源码中扒出了7种导致消息重复消费的原因
大家好,我是三友~~ 在众多关于MQ的面试八股文中有这么一道题,“如何保证MQ消息消费的幂等性”。 为什么需要保证幂等性呢?是因为消息会重复消费。 为什么消息会重复消费? 明明已经消费了,为什么消息会被再次被消费呢? 不同的MQ产生的原因可能不一样 本文就以RocketMQ为例,来扒...[2023/3/22]
RocketMQ - 消费者Rebalance机制
客户端是通过Rebalance服务做到高可靠的。当发生Broker掉线、消费者实例掉线、Topic 扩容等各种突发情况时,消费者组中的消费者实例是怎么重平衡,以支持全部队列的正常消费的呢? RebalancePullImpl 和 RebalancePushImpl 两个重平衡实现类,分别被 D...[2023/2/28]
【RocketMQ】Dledger日志复制源码分析
消息存储 在 【RocketMQ】消息的存储一文中提到,Broker收到消息后会调用CommitLog的asyncPutMe age方法写入消息,在DLedger模式下使用的是DLedgerCommitLog,进入asyncPutMe ages方法,主要处理逻辑如下: 调用serialize方...[2023/2/27]
Redis+Hbase+RocketMQ 实际使用问题案例分享
需求 将Hbase数据,解析后推送到RocketMQ。 redis使用list数据类型,存储了需要推送的数据的RowKey及表名。 简单画个流程图就是: 分析及确定方案 Redis 明确list中元素结构{"rowkey":rowkey,"table":table}解析出rowkey...[2023/1/20]
RocketMq深入分析讲解两种削峰方式
目录何时需要削峰通过消息队列的削峰方法有两种消费延时控流总结 何时需要削峰 当上游调用下游服务速率高于下游服务接口QPS时,那么如果不对调用速率进行控制,那么会发生很多失败请求 通过消息队列的削峰方法有两种 控制消费者消费速率和生产者投放延时消息,本质都是控制消费速度 通过消费者参数...[2023/1/20]
RocketMQ消息短暂而又精彩的一生
大家好,我是三友~~ 这篇文章我准备来聊一聊RocketMQ消息的一生。 不知你是否跟我一样,在使用RocketMQ的时候也有很多的疑惑: 消息是如何发送的,队列是如何选择的?消息是如何存储的,是如何保证读写的高性能?RocketMQ是如何实现消息的快速查找的?RocketMQ是如何实现高...[2023/1/11]
【RocketMQ】负载均衡源码分析
RocketMQ在集群模式下,同一个消费组内,一个消息队列同一时间只能分配给组内的某一个消费者,也就是一条消息只能被组内的一个消费者进行消费,为了合理的对消息队列进行分配,于是就有了负载均衡。 接下来以集群模式下的消息推模式DefaultMQPushConsumerImpl为例,看一下负载...[2023/1/11]
RocketMQ 在网易云音乐的实践
本文作者:蒋星韬,网易云音乐服务端开发工程师。 云音乐线上场景众多,比如直播、评论、广告,各个业务线都会有消息场景比如发奖券,也会有延迟消息和事务消息场景,以及大数据做埋点数据、数据清洗、离线处理等。 云音乐线上 RocketMQ topic 为 1 万+/天,QPS 流量峰值为150万...[2022/12/12]
【RocketMQ】主从同步实现原理
主从同步的实现逻辑主要在HAService中,在DefaultMe ageStore的构造函数中,对HAService进行了实例化,并在start方法中,启动了HAService: public cla DefaultMe ageStore implements Me ageStore { ...[2022/12/5]
基于 RocketMQ 的 Dubbo-go 通信新范式
本文作者:郝洪范 ,Dubbo-go Committer,京东资深研发工程师。 一、MQ Request Reply特性介绍 什么是 RPC 通信? 如上图所示,类似于本地调用,A 服务响应调用 B 服务的 helloworld 方法需要怎么做?首先,A 服务的 Client Sub ...[2022/12/2]
读 RocketMQ 源码,学习并发编程三大神器
笔者是 RocketMQ 的忠实粉丝,在阅读源码的过程中,学习到了很多编程技巧。 这篇文章,笔者结合 RocketMQ 源码,分享并发编程三大神器的相关知识点。 1 CountDownLatch 实现网络同步请求 CountDownLatch 是一个同步工具类,用来协调多个线程之间的...[2022/11/28]
Prometheus 监测 RocketMQ 最佳实践
本文作者:郭雨杰,阿里云智能技术专家。 Prometheus 集成的 50 多款云产品中,RocketMQ 在可观测方面实现了非常完善的功能,是一个特别具有代表性的云产品。 01 RocketMQ如何接入Prometheus RocketMQ 诞生于阿里内部的核心电商系统,是业务消息...[2022/11/17]