@目录1、抛出问题1.1 环境准备1.2 消息发送者代码1.3 消费端验证代码2、探究CONSUME_FROM_MAX_OFFSET实现原理2.1 CONSUME_FROM_LAST_OFFSET计算逻辑2.2 CONSUME_FROM_FIRST_OFFSET2.4 CONSUME_FROM_TIMESTAMP3、猜想与验证4、解决方案1、抛出问题一个新的消费组订阅一个已存在的Topic主题时,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-07 18:14:13
                            
                                35阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            RocketMQ源码阅读之消费者创建消费者并启动拉取消息的服务负载均衡服务 rebalanceService.start()  RocketMQ消费者代码相对生产者来说要更复杂一些。本次阅读的消费者代码是使用push消费方式的源码实现,其设计底层其实只是将pull的方式进行封装从而实现push消费的效果。 创建消费者并启动public static void main(String[] args            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-14 22:14:29
                            
                                156阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            每隔5秒调用一次MQClientInstance.persistAllConsumerOffset()方法将消费进度向Broker同步。遍历MQClientInstance.consumerTable: ConcurrentHashMap<String/*group */, MQConsumerInner>变量。对于PushConsumer端和PullConsumer端,处理逻辑是一样            
                
         
            
            
            
            1、抛出问题一个新的消费组订阅一个已存在的Topic主题时,消费组是从该Topic的哪条消息开始消费呢?首先翻阅DefaultMQPushConsumer的API时,setConsumeFromWhere(ConsumeFromWhere consumeFromWhere)API映入眼帘,从字面意思来看是设置消费者从哪里开始消费,正是解开该问题的”钥匙“。ConsumeFromWhere枚举类图如            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-10 10:17:38
                            
                                196阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            POP 作为一种全新的消费模式,解决了 Push 模式的一些痛点,使客户端无状态,更加轻量,消费逻辑也基本都收敛到了 Broker,对多语言的支持十分的友好。在 API 层面也与 Push 完成了融合,继承了 Push API 的简单易用,同时实现了 Push,POP 之间的自由切换。
    作者:凯易&耘田前言:随着 RocketMQ 5.0 pre            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-15 21:21:45
                            
                                110阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            RocketMQ 存储基础回顾: 源码分析RocketMQ之CommitLog消息存储机制本文主要从源码的角度分析 Rocketmq 消费队列 ConsumeQueue 物理文件的构建与存储结构,同时分析 RocketMQ 索引文件IndexFile 文件的存储原理、存储格式以及检索方式。RocketMQ 的存储机制是所有的主题消息都存储在 CommitLog 文件中,也就是消息发送是完全的顺序            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-28 11:05:57
                            
                                50阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            小编有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点说,就是调调API。对为什么使用这些中            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-07 15:28:52
                            
                                45阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            浅浅的记录一个线上曾发生的问题和排查方向曾经遇到过一个需求,上线后MQ消息突然呈几何备注递增,随后把整个CPU直接吃满,后来我排查的时候发现,一个新的消费者,订阅一个已存在的topic的时候,使用了默认的策略。rocketMQ 的消费者组决定她从何处开始i消费,从最大偏移量还是 从头开始还是怎么的,是由DefaultMQPushConsumer的setConsumeFromWhere(Consum            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-09 00:43:55
                            
                                105阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言RocketMQ中的延迟故障机制是为了帮助Producer能够通过消息发送延迟或者消息发送结果主动感知Broker忙碌或者故障,消息发送延迟或者消息发送失败时可以将Broker排除在选择列表之外。这个机制默认是不开启的,如果需要开启这个机制需要在创建Producer时主动开启。消息延迟故障机制使用消息延迟故障机制需要在创建Producer时,通过producer.setSendLatencyF            
                
         
            
            
            
            RocketMQ 简介RocketMQ 是一个队列模型的消息中间件,具有高性能,高可用,高实时等特性,它并不支持JMS(java消息服务)规范,但参考了JMS规范和kafak等的思想。Producer 、Consumer,队列都可以分布式。Producer可以向队列轮流发送消息,队列的集合称为Topic,Consumer可以做广播消费,也可以做集群消费。能够保证严格的消息顺序提供消费者水平订阅扩展            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-13 09:16:58
                            
                                66阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在RocketMQ4.3.0版本后,开放了事务消息这一特性,对于分布式事务而言,最常说的还是二阶段提交协议,那么RocketMQ的事务消息又是怎么一回事呢,这里主要带着以下几个问题来探究一下RocketMQ的事务消息:  事务消息是如何实现的  我们有哪些手段来监控事务消息的状态  事务消息的异常恢复机制  RocketMQ的事务消息是如何实现的RocketMQ作为一款消息中间件,主要作用就是帮助            
                
         
            
            
            
            RocketMQ发送普通消息的所有方法以及代码示例一、使用RocketMQTemplate发送消息(整合Springboot)(1)void send(Message\<?\> message) throws MessagingException;同步发送(2)void send(D destination, Message\<?\> message) throws Me            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-09 07:35:55
                            
                                268阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            作者:平头哥的技术我们知道 RocketMQ 是一款高性能、高可靠的分布式消息中间件,高性能和高可靠是很难兼得的。因为要保证高可靠,那么数据就必须持久化到磁盘上,将数据持久化到磁盘,那么可能就不能保证高性能了。RocketMQ 在兼容这两方面做的不错,先从磁盘说起,现代的磁盘都是高性能的,写速度并不一定比网络的数据传输速度慢。比如 SSD 固态硬盘在 M.2 NVMe协议下,顺序写的速度可以达到             
                
         
            
            
            
            RocketMQ(4.8.0)——消费进度保存机制  在消费者启动时会同时启动位点管理器,那么位点具体是怎么管理的呢?  RocketMQ 设计了2种位点管理方式:远程位点管理方式(集群消费时,位点由客户端交给 Broker 保存,代码路径:D:\rocketmq-master\client\src\main\java\org\apache\rocketmq\client\consumer\sto            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-10 13:42:43
                            
                                148阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、顺序消息  消息有序指的是可以按照消息的发送顺序来消费。例如:一笔订单产生了 3 条消息,分别是订单创建、订单付款、订单完成。消费时,要按照顺序依次消费才有意义。与此同时多笔订单之间又是可以并行消费的。首先来看如下示例:假如生产者产生了2条消息:M1、M2,要保证这两条消息的顺序,应该怎样做?你脑中想到的可能是这样:  你可能会采用这种方式保证消息顺序  假定M1发送到S1,M2发送到S2,如            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-05 11:24:18
                            
                                130阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            RocketMQ使用过程中,如何进行消息重试。首先,我们需要明确,只有当消费模式为 MessageModel.CLUSTERING(集群模式) 时,Broker才会自动进行重试,对于广播消息是不会重试的。集群消费模式下,当消息消费失败,RocketMQ会通过消息重试机制重新投递消息,努力使该消息消费成功。当消费者消费该重试消息后,需要返回结果给broker,告知broker消费成功(Consume            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-17 13:36:31
                            
                                87阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            消息重试Rocketmq提供了消息重试机制,这是一些其他消息队列没有的功能。我们可以依靠这个优秀的机制,而不用在开发中增加更多的业务代码去实现Consumer 消费消息失败后,要提供一种重试机制,令消息再消费一次。Consumer 消费消息失败通常可以认为有以下几种情况由于消息本身的原因,例如反序列化失败,消息数据本身无法处理(例如话费充值,当前消息的手机号被注销,无法充值)等。  这种错误通常需            
                
         
            
            
            
            消息队列的发展史:并且详细介绍了RabbitMQ,其功能也是挺强大的,那么,为啥又要搞一个RocketMQ出来呢?是重复造轮子吗?本文我们就带大家来详细探讨RocketMQ究竟好在哪里。RocketMQ是一个分布式消息中间件,具有低延迟、高性能和可靠性、万亿级别的容量和灵活的可扩展性。它是阿里巴巴于2012年开源的第三代分布式消息中间件。随着阿里巴巴的电商业务不断发展,需要一款更高性能的消息中间件            
                
         
            
            
            
            1. 概念  Producer端重试:  生产者端的消息失败,也就是Producer往MQ上发消息没有发送成功,比如网络抖动导致生产者发送消息到MQ失败。 这种消息失败重试我们可以手动设置发送失败重试的次数。  Consumer端重试:  Consumer消费消息失败后,要提供一种重试机制,令消息再消费一次,Consumer消费消息失败通常可以认为有以下几种情况  1. 由于消息本身的原            
                
         
            
            
            
            theme: cyanosis“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第4篇文章,点击查看活动详情”Push 模式是指由 Server 端来控制消息的推送,即当有消息到 Server 之后,会将消息主动投递给 client(Consumer 端)。使用 DefaultMQPushConsumer 消费消息下面是使用 DefaultMQPushConsumer 消费消息的官方示例代码            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-16 19:34:28
                            
                                39阅读
                            
                                                                             
                 
                
                                
                    