- 2023-10-25MQ--二
一、作用 MQ作用很简单,就是削峰填谷。 使用MQ之后我们的链路变简单了,同事异步发送消息我们的整个系统的抗压能力也上升了。二、性能对比 三、消息可靠性保证 消息丢失可能发生在生产者发送消息、MQ本身丢失消息、
- 2023-10-10【RocketMQ】RocketMQ存储结构设计
CommitLog生产者向Broker发送的消息,会以顺序写的方式,写入CommitLog文件,CommitLog文件的根目录由配置参数storePathRootDir决定,默认每一个CommitLog的文件大小为1G,如果文件写满会新建一个CommitLog文件,以该文件中第一条消息的偏移量为文件名,小于20位用0补齐:比如第一个文件中第一
- 2023-08-21【RocketMQ】消息的存储总结
当Broker收到生产者的消息发送请求时,会对请求进行处理,从请求中解析发送的消息数据,接下来以单个消息的接收为例,看一下消息的接收过程。数据校验封装消息首先Broker会创建一个MessageExtBrokerInner对象封装从请求中解析到的消息数据,它会将Topic信息、队列ID、消息内容、消息属性
- 2023-05-18RocketMQ之消息持久化存储源码分析
一、原理1.1消息存在哪了?消息持久化的地方其实是磁盘上,在如下目录里的commitlog文件夹里。/root/store/commitlog源码如下://{@linkorg.apache.rocketmq.store.config.MessageStoreConfig}//数据存储根目录privateStringstorePathRootDir=System.getProperty("use
- 2023-05-05RocketMQ笔记(十一):消息存储删除机制
RocketMQ的消息采用文件进行持久化存储。1、存储目录详情RocketMQ中默认文件存储位置/root/store,文件详情如下 commitLog:消息存储目录config:运行期间一些配置信息consumerqueue:消息消费队列存储目录index:消息索引文件存储目录checkpoint:文件
- 2023-05-04RocketMQ之消息存储
一、概述消息持久化存储是MQ消息队列中最为复杂和最为重要的一部分,本文先从目前几种比较常用的MQ消息队列存储方式出发,为大家介绍RocketMQ选择磁盘文件存储的原因。然后,本文分别从RocketMQ的消息存储整体架构和RocketMQ文件存储模型层次结构两方面进行深入分析介绍。使得大家读完
- 2023-01-10RocketMQ消息短暂而又精彩的一生
大家好,我是三友~~这篇文章我准备来聊一聊RocketMQ消息的一生。不知你是否跟我一样,在使用RocketMQ的时候也有很多的疑惑:消息是如何发送的,队列是如何选择的?消息是如何存
- 2023-01-08RocketMQ存储篇四:刷盘
概览RocketMQ主从同步指的是消息发送到master的内存中,并且等到同步到slaver的内存才返回;刷盘则是将内存中的消息写入磁盘,同样分为同步刷盘和异步刷盘。同步刷盘指一条
- 2023-01-05一文详解RocketMQ的存储模型
摘要:RocketMQ优异的性能表现,必然绕不开其优秀的存储模型。本文分享自华为云社区《终于弄明白了RocketMQ的存储模型》,作者:勇哥java实战分享。RocketMQ优异的性能表现,
- 2022-12-30终于弄明白了 RocketMQ 的存储模型
RocketMQ优异的性能表现,必然绕不开其优秀的存储模型。这篇文章,笔者按照自己的理解,尝试分析RocketMQ的存储模型,希望对大家有所启发。1整体概览首先温习下Rocke
- 2022-11-27面试题系列:MQ 夺命连环11问
1.你们为什么使用mq?具体的使用场景是什么? mq的作用很简单,削峰填谷。以电商交易下单的场景来说,正向交易的过程可能涉及到创建订单、扣减库存、扣减活动预算、扣
- 2022-11-26MQ系列8:数据存储,消息队列的高可用保障
MQ系列1:消息中间件执行原理MQ系列2:消息中间件的技术选型MQ系列3:RocketMQ架构分析MQ系列4:NameServer原理解析MQ系列5:RocketMQ消息的发送模式MQ系列6:消息的消费MQ系
- 2022-11-24RocketMQ 是如何发送消息
创建Topic的时候为何要指定MessageQueue数量?简单来说,就是你要指定你的这个Topic对应了多少个队列,也就是多少个MessageQueue。MessageQueue就是RocketMQ中非常关键的一个
- 2022-09-02自定义注解+aop做日志记录
自定义一个注解:@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public@interfaceCommitLog{/***类型名称*@retu