ICode9

精准搜索请尝试: 精确搜索
  • 自定义注解+aop做日志记录2022-09-02 17:34:07

    自定义一个注解: @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface CommitLog { /** * 类型名称 * @return */ String typeName() ; /** * 方法操作类型 * @return */ String me

  • 08第三章:02_消息的存储2022-07-31 12:33:45

    一、消息的存储 RocketMQ 中的消息存储在本地文件系统中,这些相关文件默认在当前用户主目录下的 store 目录中。 abort:该文件在 Broker 启动后会自动创建,正常关闭 Broker,该文件会自动消失。若在没有启动 Broker 的情况下,发现这个文件是存在的,则说明之前 Broker 的关闭是非正常关

  • RocketMQ刷盘机制2022-03-07 12:02:51

    概览 RocketMQ的存储读写是基于JDK NIO的内存映射机制的,消息存储时首先将消息追加到内存中。在根据不同的刷盘策略在不同的时间进行刷盘 。如果是同步刷盘,消息追加到内存后,将同步调用MappedByteBuffer的force()方法,同步等待刷盘结果,进行刷盘结果返回。如果是异步刷盘, 在消息追加

  • rocketMq和kafka消息推拉模式2022-02-25 22:02:42

    https://segmentfault.com/a/1190000023854950 rocketMq的推模式,默认每5s检查是否有新消息,另外在处理commitLog消息分发到Message Queue的时候,会唤醒消息请求处理操作,所以对于消息的响应是比较及时的。

  • RocketMQ消息的生产和存储2022-01-06 21:03:54

    一 : 消息的生产 1. 消息的生产过程 Producer在发送消息时可以将消息写入到指定topic的某Broker中的某Queue中,其经历了如下过程: Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求 NameServer返回该Topic的路由表及Broker列表 Producer根据代码中指定

  • 【RocketMQ工作原理】消息的清理2021-09-11 20:01:57

    消息被消费过后会被清理掉吗?不会的。 消息是被顺序存储在commitlog文件的,且消息大小不定长,所以消息的清理是不可能以消息为单位进行清理的,而是以commitlog文件为单位进行清理的。否则会急剧下降清理效率,并实现逻辑复杂。 commitlog文件存在一个过期时间,默认为72小时,即三天。

  • RocketMQ-存储机制-刷盘机制2021-08-09 21:03:56

    RocketMQ-存储机制-刷盘机制 在理解RocketMQ刷盘实现之前,先理解一下上图展示的刷盘的2种实现的: 1)直接通过内存映射文件,通过flush刷新到磁盘 2)当异步刷盘且启用了对外内存池的时候,先write到writeBuffer,然后commit到Filechannel,最后flush到磁盘 另外输盘的方式分为异步刷盘 同步刷

  • RocketMQ-broker存储机制-整体结构2021-08-01 21:31:06

    RocketMQ-broker存储机制 该篇主要讲解rocketmq-store模块,了解其存储机制,文件读写原理。   为何Rocketmq存储写文件这么快呢? 简单来说,总结两点: 1)pagecache+虚拟内存  2)零拷贝+java文件映射     Broker存储目录结构 commitlog               文件名是一个20个字符,代表

  • 消息的存储-RocketMQ知识体系32021-07-15 19:31:27

    上一篇了解了RocketMQ消息发送,本文开始聊聊消息发送到Broker端后,消息存储相关的逻辑。 RocketMQ存储概要设计 — RocketMQ主要存储的文件包括commitlog文件、consumeQueue文件、IndexFile文件。 CommitLog是消息存储文件,所有消息主题的消息都存储在CommitLog文件中;该文件默认

  • rocketMq-消息存储-commitLog2021-07-10 15:00:16

    简述     本文章针对rocketMq 开源版本4.8.0进行分析;rocketMq 流程简述如下: nameserv:看作注册中心,broker 启动要注册到nameserv中,同时要定时向nameserv发送心跳来告诉nameserv它还活着,然后nameserv除了维护broker信息,还要维护topic的信息,比如一个topic 消息发送到哪几个br

  • RocketMQ学习随笔-Broker启动2021-06-26 23:02:50

    文章目录 Broker启动入口创建`BrokerController`对象配置文件的解析及加载创建`BrokerController`对象并初始化注册`JVM`钩子函数并调用`BrokerController.shutdown()`函数实现优雅关闭 调用`start`方法从CommitLog读取消息发送至ConsumeQueue 刷盘机制提交刷盘请求同步刷

  • RocketMQ源码分析(三)消息存储2021-05-24 22:59:27

    1.4 消息存储 1.4.1 消息存储核心类 private final MessageStoreConfig messageStoreConfig; //消息配置属性 private final CommitLog commitLog; //CommitLog文件存储的实现类 private final ConcurrentMap<String/* topic */, ConcurrentMap<Integer/* queueId */, Consume

  • RocketMQ入门到入土(五)消息持久化存储源码解析2021-05-04 22:54:28

    精彩推荐一百期Java面试题汇总SpringBoot内容聚合IntelliJ IDEA内容聚合Mybatis内容聚合 接上一篇:RocketMQ入门到入土(四)producer生产消息源码剖析 一、原理 1、消息存在哪了? 消息持久化的地方其实是磁盘上,在如下目录里的commitlog文件夹里。 /root/store/commitlog 源码如下: // {

  • 深入研究Broker是如何持久化的2021-04-28 23:05:36

    前言上篇文章王子和大家讨论了一下RocketMQ生产者发送消息的底层原理,今天我们接着这个话题,继续深入聊一聊RocketMQ的Broker是如何持久化的。Broker的持久化对于整个RocketMQ的运行起着至关重要的作用,为什么这么说呢?其实解释起来很容易,因为消息中间件要实现的功能不仅仅是消息的发送

  • RocketMQ2021-04-18 13:34:49

    一、RocketMQ集群    RocketMQ集群由于无法选主,所以当Master挂了以后,slave需要手动切换master。这一点不好 二、RocketMQ为什采用NameSr,而不是zk ZK是CP,NameSr是AP。RocketMQ选择了高可用。 RocketMQ的集群思想与Kafka有很大区别,在Kafka中borker这个概念分为Master和slave,可以

  • RocketMQ 消息存储2021-03-31 09:05:32

    引言 前面我们已经简单地介绍了 RocketMQ 的整体设计思路,本文着重其中消息存储部分的整体实现思路。 消息存储 通过前面的知识,我们已经知道了topic是如何分配到Broker的,以及消息发送方是如何决定把消息发送给哪个Broker的,接下来我们看一看Broker介绍到消息后,是怎么存储消息的

  • RocketMQ文件存储体系介绍2021-03-06 15:01:07

    文章目录 1. RocketMQ的文件体系介绍2. CommitLog,ConsumeQueue, IndexFile 介绍2.1 CommitLog2.2 ConsumeQueue2.3 IndexFile2.4 存储方式 3. 页缓存与内存映射3.1 页缓存pageCache3.2 内存映射 1. RocketMQ的文件体系介绍  RocketMQ的消息存储是RocketMQ中最为复杂

  • RocketMQ 源码分析 —— Message 存储2021-01-17 22:07:51

    摘要: 原创出处 http://www.iocoder.cn/RocketMQ/message-store/ 「芋道源码」欢迎转载,保留摘要,谢谢!1、概述2、CommitLog 结构3、CommitLog 存储消息CommitLog#putMessage(...)MappedFileQueue#getLastMappedFile(...)MappedFile#appendMessage(...)DefaultAppendMessageCallback#d

  • rocketMq 消息偏移量 Offset2020-12-21 14:02:09

    消息偏移量 Offset queue0  offset 0   0-20  offset 4  20-40 纠错:每条消息的tag对应的HashCode. queue1  offset 1  0-20  offset 5  20-40 queue2  offset 2  0-20  offset 6  20-40 queue3  offset 3 0-20  offset 7  20-40 概念 message queue

  • RocketMQ官方为什么“异步刷盘建议用自旋锁,同步刷盘建议用重入锁”?2020-12-15 23:32:55

    RocketMQ在写入消息到CommitLog中时,使用了锁机制,即同一时刻只有一个线程可以写CommitLog文件。 CommitLog 中使用了两种锁,一个是自旋锁,另一个是重入锁。源码如下: public class CommitLog { ... protected final PutMessageLock putMessageLock; public CommitLog

  • RocketMQ-消息存储2020-11-30 19:33:17

    1.存储结构 commitLog 消息存储文件,所有主题的消息都存储在commitLog文件中consumeQueue 每个MessageQueue对应一个ConsumeQueue文件,存储的是该队列的所有消息数据,但是不是存储的全量数据,只是存储了该消息在commitLog里的offset。相当于索引文件。消息到达commitLog后将异步

  • RocketMQ源码解析之broker文件清理2020-11-25 00:01:00

    原创不易,转载请注明出处 文章目录 1. broker 清理文件介绍1.1 哪些文件需要清理1.2 RocketMQ文件清理的机制 2.源码解析2.1 清理commitlog2.2 ConsumeQueue 与indexFile 清理 总结 1. broker 清理文件介绍 1.1 哪些文件需要清理 首先我们需要介绍下在RocketMQ中哪些

  • Rocketmq broker 消息仓库2020-06-26 21:01:33

    名词: commitLog : 消息存储的地方,持久化到磁盘中,保存着生产者发送的完整消息。 consumerqueue: 逻辑消费队列,每一个队列中维护着commitLog 文件中的消息偏移量进行消费。 index:  索引文件。 初始化: 在Broker 启动的时候,org.apache.rocketmq.broker.BrokerController#initialize

  • RocketMQ事务性消息及持久化2020-06-01 13:52:10

    TransactionProducer(事务消息):   在分布式系统中,我们时常会遇到分布式事务的问题,除了常规的解决方案之外,我们还可以利用RocketMQ的事务性消息来解决分布式事务的问题。RocketMQ和其他消息中间件最大的一个区别是支持了事务消息,这也是分布式事务里面的基于消息的最终一致性方案。

  • rocketMQ 删除过期文件2020-03-03 19:56:49

    commitLog 删除文件的策略 指定时间到了,磁盘不足,人工删除,满足任一条件,判断文件是否过期或者磁盘不足,是则删除,一批次最多删除 10 个文件。 commitLog,consumeQueue,indexFile 的删除策略如下图:     commitLog 尾部是有空洞的,当一个消息在当前文件放不下时,rocketmq 认为下一个文件

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有