目录1、消息生产1.1 消息的生产过程1.2 Queue选择算法2、消息储存2.1 存储介质2.2 消息的存储和发送2.3 消息存储结构2.4 刷盘机制 1、消息生产1.1 消息的生产过程Producer可以将消息写入到某Broker中的某Queue中,其经历了如下过程:Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求。NameServer返回该To            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-22 21:42:19
                            
                                58阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Spring Rocketmq 事务消息 RocketMQTemplate的使用 一、事务消息的执行流程图2、使用代码3、总结 一、事务消息的执行流程图 1、第一阶段本地会将消息提交到rocketmq服务器上,这里的rocketmq服务器我的理解是broker代理服务器。 2、第二阶段就是服务器接受消息成功返回装填 3、第三阶段就是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-09 11:35:19
                            
                                159阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前面通过对 rabbitmq 的分析,我们总结一张结构图放在这里(图引自),作为和 rocketmq 的对比。图中的队列是 quorum 队列。每个 broker 上都会有不同的队列存在。因为 quorum 队列采用了raft 协议,所以队列分为领导者队列和追随者队列,基于 raft 协议来保障领导者队列和追随者队列之间的数据同步和自动选主。但是 rabbitmq 虽然受众广泛,并且拥有许多种语言            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-28 12:17:44
                            
                                446阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            如果rocketmq-client-cpp真的像声称的那样,“一个命令即可编译整个项目”,那也就没这篇文章了。现在下载到的rocketmq-client-cpp最新版本是2.0.1,下载的压缩包不大,只有500多k,不过编译后占了10.8G(编译了x64的Release版本和Debug版本),请要编译的同学准备好硬盘空间哈。我的编译环境是Windows 10.0.18362.720,Visual            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-31 17:15:03
                            
                                112阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            引入SpringSecurity模块<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </depe            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-20 11:16:42
                            
                                293阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录MQ概述MQ用途1、限流削峰2、异步解耦3、数据收集常见MQ产品1、ActiveMQ2、RabbitMQ3、Kafka4、RocketMQMQ常见协议1、JMS2、STOMP3、AMQP4、MQTTRocketMQ概述RocketMQ发展历程 MQ概述MQ,Message Queue,是一种提供 消息队列服务 的中间件,也称为消息中间件,是一套提供了消息生 产、存储、消费全过程API的软件系            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-25 15:08:55
                            
                                184阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            写在前面RocketMQ Remoting模块也是整个代码中比较简单的一个模块,在掌握基本的Netty知识之后就可以尝试对源码进行简单的阅读分析,我也是结合源码分析来进行Netty应用的学习。该模块主要有两个类 NettyRemotingServer 和 NettyRemotingClient 。分别对应服务端和客户端,服务端主要在Broker和NameService中使用。本            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-16 12:16:58
                            
                                173阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、问题 当向RocketMQ频繁push数据,broker负载较高时,会报system busy或broker busy的问题。当发生此类问题时,会导致数据丢失。 报system busy或broker busy 说明PageCache繁忙,向PageCache追加消息时,单个消息发送占用的时间超过一定时间,如果持续往该Broker服务器发送消息并等待,超时后,broker采用快速失败机制返回失            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-29 00:19:17
                            
                                32阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言:  要了解rocketMq 需要知道 数据在 rocketMq 中 是如何进行传输,在底层的结构到底是一个什么亚子,这个需要我们对Netty 对字符编解码有一些了解。开始:  我们从生产者发送消息,broker 接收消息 为例,来开展底层消息结构。消息发送流程:  1. 如下是一段生产者发送消息的代码,这里我们进去第5步看发送消息的流程。//1. 初始化 mq producer            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-24 11:26:21
                            
                                95阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            存储介质-磁盘一般而言消息中间件的消息都存储在本地文件中,因为从效率来看直接放本地文件是最快的,并且稳定性最高。毕竟要是放类似数据库等第三方存储中的话,就多一个依赖少一份安全,并且还有网络的开销。那对于将消息存入磁盘文件来说一个流程的瓶颈就是磁盘的写入和读取。我们知道磁盘相对而言读写速度较慢,那通过磁盘作为存储介质如何实现高吞吐呢?顺序读写答案就是顺序读写。首先了解一下页缓存,页缓存是操作系统用来            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-16 21:37:32
                            
                                45阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             文章目录架构启动集群Netty主从复制刷盘机制事务消息顺序消息消息清理顺序写和零拷贝基于Dledger的主从复制 架构Producer:就是消息生产者,可以集群部署。它会先和 NameServer 集群中的随机一台建立长连接,得知当前要发送的 Topic 存在哪台 Broker Master上,然后再与其建立长连接,支持多种负载平衡模式发送消息。Consumer:消息消费者,也可以集群部署。它也            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-26 13:44:02
                            
                                104阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            客户端没有配置文件,所有的配置选项需要开发者使用对应的配置的setter进行设置。 由于现在网上基本找不到一套较为完善的配置文档,今天来讲讲截止至RocketMQ 4.0,客户端已有的所有配置的含义。 本文尽可能不深入讨论配置相关的原理和源码(除非笔者认为有必要交代对应的背景),尽可能以最简单的描述说清楚作为一个开发者从使用的角度需要明白的那些表现。具体相关原理或具体分析请参考附带的参考链接。 注            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-26 13:12:14
                            
                                234阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             一、 消息队列  1. 分布式应用与集群的区别:     如果是一个业务被拆分成多个子业务部署在不同的服务器上,那就是分布式应用;如果是同一个业务部署在多台服务器上,那就是集群。  2. 系统间通信方式:     一种是基于远程过程调用的方式(如RPC调用);另一种是基于消息队列的方式。二、RabbitMQ  1.RabbitMQ特点:   RabbitMQ是一个由Erlang语言开发            
                
         
            
            
            
            一、Offset(一)什么是OffsetRocketMQ中,一种类型的消息会放到一个Topic里,为了能够并行,一般一个Topic会有多个Message Queue (也可以设置成一个),Offset是指某个Topic下的一条消息在某个MessageQueue里的位置,通过Offset的值可以定位到这条消息,或者指示Consumer从这条消息开始向后继续处理。(二)Offset数据结构在Rocke            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-15 14:42:50
                            
                                106阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在分布式系统中,我们会广泛使用各种消息中间件来进行系统间的数据交换,以便于各系统之间实现异步解耦。目前市场上开源的消息中间件有很多:如Kafka、RabbitMQ、RocketMQ等等。       什么是消息队列在正式介绍和对比Kafka、RabbitMQ、RocketMQ之前,我们来说说什么是消息队列(Message queue,简称MQ),从字面理解就是一个保存消息的一个容器。那么我们为何需            
                
         
            
            
            
              netty的标准设计流程为:编码,解码,检测,链接,其他handler,业务。按照这个流程将rocketmq的netty的实现流程进行细化。编码     NettyEncoder         继承MessageToByteEncoder,netty的编码规范要求         将            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-15 19:40:39
                            
                                53阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            特性ActiveMQRabbitMQRocketMQKafka单机吞吐量万级,比 RocketMQ、Kafka 低一个数量级同 ActiveMQ10 万级,支撑高吞吐10 万级,高吞吐,一般配合大数据类的系统来进行实时数据计算、日志采集等场景topic 数量对吞吐量的影响  topic 可以达到几百/几千的级别,吞吐量会有较小幅度的下降,这是 RocketMQ 的一大优势,在同            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-29 11:43:55
                            
                                81阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言这篇文章以4.3.0版本为标准进行讲述在linux下部署RocketMQ单机实例,在此之前需要已配置JAVA环境。apache RocketMQ 是阿里巴巴在2016年11月捐赠给了apache基金会并于2017年9月顺利毕业成为apache顶级项目。下载程序包直接使用一般就下载已经编译好的二进制文件就好了,下载好以后> unzip rocketmq-all-4.3.0-bin-rele            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-30 04:43:54
                            
                                330阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录RocketMQ发展历程及基本概念RocketMQ简介发展历程基本概念消息(Message)主题(Topic)标签(Tag)队列(Queue)分片(sharding)消息标识(MessageID/Key) RocketMQ发展历程及基本概念RocketMQ简介RocketMQ是一个统一消息引擎、轻量级数据处理平台是阿里巴巴开源的消息中间件,2016年成为Apache孵化项目。2017年孵            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-28 10:50:24
                            
                                57阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前文回顾本文是《掌握SpringBoot-2.3的容器探针》系列的第二篇,前文  《掌握SpringBoot-2.3的容器探针:基础篇》知道了kubernetes的存活和就绪探针,以及SpringBoot-2.3的actuator新增的两个endpoint,当我们把应用部署到kubernetes环境时,这些知识让我们能配置出官方推荐的探针方案,如下图:尽管上述配置已经可以覆盖多数场景,依然有三个问