小编有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点说,就是调调API。对为什么使用这些中            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-07 15:28:52
                            
                                45阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            POP 作为一种全新的消费模式,解决了 Push 模式的一些痛点,使客户端无状态,更加轻量,消费逻辑也基本都收敛到了 Broker,对多语言的支持十分的友好。在 API 层面也与 Push 完成了融合,继承了 Push API 的简单易用,同时实现了 Push,POP 之间的自由切换。
    作者:凯易&耘田前言:随着 RocketMQ 5.0 pre            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-15 21:21:45
                            
                                110阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            消息重试Rocketmq提供了消息重试机制,这是一些其他消息队列没有的功能。我们可以依靠这个优秀的机制,而不用在开发中增加更多的业务代码去实现Consumer 消费消息失败后,要提供一种重试机制,令消息再消费一次。Consumer 消费消息失败通常可以认为有以下几种情况由于消息本身的原因,例如反序列化失败,消息数据本身无法处理(例如话费充值,当前消息的手机号被注销,无法充值)等。  这种错误通常需            
                
         
            
            
            
            RocketMQ使用过程中,如何进行消息重试。首先,我们需要明确,只有当消费模式为 MessageModel.CLUSTERING(集群模式) 时,Broker才会自动进行重试,对于广播消息是不会重试的。集群消费模式下,当消息消费失败,RocketMQ会通过消息重试机制重新投递消息,努力使该消息消费成功。当消费者消费该重试消息后,需要返回结果给broker,告知broker消费成功(Consume            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-17 13:36:31
                            
                                87阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            每隔5秒调用一次MQClientInstance.persistAllConsumerOffset()方法将消费进度向Broker同步。遍历MQClientInstance.consumerTable: ConcurrentHashMap<String/*group */, MQConsumerInner>变量。对于PushConsumer端和PullConsumer端,处理逻辑是一样            
                
         
            
            
            
            作者:平头哥的技术我们知道 RocketMQ 是一款高性能、高可靠的分布式消息中间件,高性能和高可靠是很难兼得的。因为要保证高可靠,那么数据就必须持久化到磁盘上,将数据持久化到磁盘,那么可能就不能保证高性能了。RocketMQ 在兼容这两方面做的不错,先从磁盘说起,现代的磁盘都是高性能的,写速度并不一定比网络的数据传输速度慢。比如 SSD 固态硬盘在 M.2 NVMe协议下,顺序写的速度可以达到            
                
         
            
            
            
            在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阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            浅浅的记录一个线上曾发生的问题和排查方向曾经遇到过一个需求,上线后MQ消息突然呈几何备注递增,随后把整个CPU直接吃满,后来我排查的时候发现,一个新的消费者,订阅一个已存在的topic的时候,使用了默认的策略。rocketMQ 的消费者组决定她从何处开始i消费,从最大偏移量还是 从头开始还是怎么的,是由DefaultMQPushConsumer的setConsumeFromWhere(Consum            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-09 00:43:55
                            
                                105阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在我的职场经历中,使用 `RocketMQ` 与 `Spring Boot` 进行消息发送和消费的经验让我感受到这一技术的强大。因此,我决定将这一过程记录一下,特别是如何通过 `java rocketMQTemplate` 发送和消费消息的详细步骤。下面,我将从环境准备开始,逐步指导如何完成这一过程。
### 环境准备
在开始之前,首先要准备相应的软硬件环境。以下是所需的基本环境信息:
##            
                
         
            
            
            
            概述分别从Producer发送机制、Broker的持久化机制,以及消费者的offSet机制来最大程度保证消息不易丢失从Producer的视角来看:如果消息未能正确的存储在MQ中,或者消费者未能正确的消费到这条消息,都是消息丢失。从Broker的视角来看:如果消息已经存在Broker里面了,如何保证不会丢失呢(宕机、磁盘崩溃)从Consumer的视角来看:如果消息已经完成持久化了,但是Consume            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-12 10:10:05
                            
                                187阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 概念  Producer端重试:  生产者端的消息失败,也就是Producer往MQ上发消息没有发送成功,比如网络抖动导致生产者发送消息到MQ失败。 这种消息失败重试我们可以手动设置发送失败重试的次数。  Consumer端重试:  Consumer消费消息失败后,要提供一种重试机制,令消息再消费一次,Consumer消费消息失败通常可以认为有以下几种情况  1. 由于消息本身的原            
                
         
            
            
            
            一、顺序消息  消息有序指的是可以按照消息的发送顺序来消费。例如:一笔订单产生了 3 条消息,分别是订单创建、订单付款、订单完成。消费时,要按照顺序依次消费才有意义。与此同时多笔订单之间又是可以并行消费的。首先来看如下示例:假如生产者产生了2条消息:M1、M2,要保证这两条消息的顺序,应该怎样做?你脑中想到的可能是这样:  你可能会采用这种方式保证消息顺序  假定M1发送到S1,M2发送到S2,如            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-05 11:24:18
                            
                                130阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、为什么会出现消息乱序消费先来看生产者,rocketmq的一个主题下可以创建多个队列,默认情况下生产者将消息轮询发送到各个不同的队列上,这就导致本来需要有序的多个消息进入了不同队列。 下面再来看一下消费者。如果消费者使用的是DefaultMQPushConsumer,下面分两种情况来看: (1)、一种该消费组内只有一个消费者,所有的消息都会发送到该消费者,DefaultMQPushConsume            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-01 09:50:42
                            
                                126阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一句话概述:消息消费后有两个地方做ack。第一个地方是消费失败后同步将消费失败的消息发送回broker,另一个地方是定时任务(参见org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl#start(boolean)--> org.apache.rocketmq.client.consumer.store.RemoteBro            
                
         
            
            
            
            文章目录生产阶段消息丢失Broker 存储阶段消息丢失消费阶段消息丢失 一条消息从生产到被消费,将会经历三个阶段: 1.生产阶段,Producer 新建消息,然后通过网络将消息投递给 MQ Broker 2.存储阶段,消息将会存储在 Broker 端磁盘中 3.消费阶段, Consumer 将会从 Broker 拉取消息 以上任一阶段都可能会丢失消息,我们只要找到这三个阶段丢失消息原因,采用合理            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-01 09:54:04
                            
                                98阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            简介 RocketMQ 特点 RocketMQ 是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给 Apache 软件基金会,并于2017年9月25日成为 Apache 的顶级项目。作为经历过多次阿里巴巴双十一这种“超级工程”的洗礼并有稳定出色表现的国产中间件,以其高性能、低延时和高可靠等特性近年来已经也被越来越多的国内企业使用。其主要特点有: 1. 灵活可扩展性 Rock            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-17 11:07:01
                            
                                53阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录问题点broker接收流程图消息接收1.启动入口`NettyRemotingServer.start()`2.创建NettyServer通信通道3.Netty接收核心处理类`NettyServerHandler`3.1 请求处理`processRequestCommand`3.2 消息请求处理器`SendMessageProcessor`3.3 消息存储`DefaultMessageStor            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-09 08:58:18
                            
                                130阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            @目录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中的消息持久化存储
当mq接收到了一条消息 需要向生产者返回ack响应(接收成功的响应)然后把这条消息存储起来
mq给消费者一条消息之后 等消费者给mq返回了消费成功的响应 mq就会把这条消息标记为以消费  如果没有标记已消费 mq会不断的尝试往消费者发送这条消息
rocketmq中的消息当消费完是不会被删除的 所以我们需要给broker配置文件设置一个多久删一次            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-06 22:26:43
                            
                                262阅读
                            
                                                                             
                 
                
                                
                    