美文网首页
rockmq 存储过程分析

rockmq 存储过程分析

作者: 大强斌 | 来源:发表于2020-03-29 18:57 被阅读0次

1 存储篇

1.1 整体结构

存储层的结构如下图所示,业务层均通过DefaultMessageStore类提供的方法作为统一入口访问底层文件。RocketMQ底层有6类文件,对于不同类型的文件在存储逻辑层采用不同的类提供服务,其中三类大文件:Index文件由IndexService类提供服务,consumequeue文件由Consumequeue类提供服务,commitlog文件由CommitLog类提供服务,还有两类小文件:checkpoint文件由StoreCheckPoint类提供访问服务、config目录下面的配置文件(以json格式存储)由ConfigMananger类提供访问服务;

对于index/consumequeue/commitlog这三类大文件,为了提供读写性能,底层采用java.nio.MappedByteBuffer类,该类是文件内存映射方案,支持随机读/顺序写操作,为了便于存储逻辑层操作大文件,将该类封装成MapedFile类;对于每类大文件,在存储时分隔成多个固定大小的文件,其中每分隔的文件的文件名为前面所有文件的大小+1,即为文件的起始偏移量,从而实现了整个大文件的串联,每个固定大小的文件均由MapedFile类提供操作服务;MapedFile类提供了顺序写、随机读、内存数据刷盘、内存清理等与文件相关的服务。

文件内存映射概念

1.2 大文件的磁盘操作——MapedFile

对于commitlog、consumequeue、index三类大文件进行磁盘读写操作,均是通过MapedFile类来完成。该类的成员变量如下图所示,就是映射文件的属性信息;

采用

mmap直白得表诉 是讲 文件通过虚拟内存映射到物理内存。进程对文件得操作,直接操作内存。后续 定时刷盘。减少了io操作得频率。

和普通得文件读写 得区别是,1内存级别文件操作 2普通得文件读写。数据先由磁盘读入到文件缓存中。

再把文件缓存中数据读到用户内存中。存在两次数据拷贝。效率低下。

rockmq 采取文件预热得原理。讲空数据写入到文件中。这样就会再内存中创建映射。否则只是建立文件到虚拟内存得映射。不到物理内存。这样产生缺页中断。需要临时去读取数据。

参考:

链接:https://www.jianshu.com/p/eaad6ec3f87c

原文链接:https://blog.csdn.net/meilong_whpu/article/details/76916759

mmap原理,参考https://blog.csdn.net/qq_33611327/article/details/81738195

相关文章

  • rockmq 存储过程分析

    1 存储篇 1.1 整体结构 存储层的结构如下图所示,业务层均通过DefaultMessageStore类提供的方...

  • rocket mq 底层存储源码分析(4)-索引构建

    在《rocket mq 底层存储源码分析(1)-存储总概》章节中,我们提到rockmq 有两类索引,一类是【逻辑位...

  • rocketmq源码之起始

    分析大型软件的代码,我都以失败告终,这次也一样,不求完整分析rockmq的代码,只是记录自己走了多远,等到失败...

  • rockmq主从机制源码分析

    先抛出几个问题带着问题去学习 1 HA的整体流程 2 对应的api的关键点 代码1 master启动监听...

  • Rockmq部署

    一、需要提供软件包 server-jre-8u121-linux-x64.tar.gzalibaba-rocket...

  • Mysql存储过程

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 创建存储过程 调用存储过程 存储过程...

  • MySQL批量添加数据

    创建存储过程 执行存储过程 删除存储过程

  • 17 存储过程

    过程: 函数: 过程是没有返回值的函数 存储过程: 存储过程语法 存储过程1--创建简单的存储过程 存储过程2--...

  • Request Routing

    eureka kafaka rockmq:https://mp.weixin.qq.com/s/imLTVwgm8...

  • 存储过程

    详见存储过程详解 创建存储过程 使用存储过程 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一...

网友评论

      本文标题:rockmq 存储过程分析

      本文链接:https://www.haomeiwen.com/subject/kpvvdhtx.html