zoukankan      html  css  js  c++  java
  • RocketMQ 消息存储

    消息存储

      主要的存储文件:

      1、消息文件(commitLog)

      2、消息消费队列文件(consumeQueue)

      3、Hash索引文件(IndexFile)

      4、检测点文件(checkpoint)

      5、关闭异常文件(abort)

    文件刷盘机制

      RocketMQ的存储与读写是基于JDK NIO的内存映射机制(MappedByteBuffer)的,消息存储时首先将消息追加到内存,再根据配置的刷盘策略在不同时间进行刷写磁盘。

      同步刷写:消息追加到内存后,立即将内存消息刷写到磁盘,再对客户端进行应答。

      异步刷写:消息追加到内存后,先应答客户端,再使用线程按照设定的频率将内存刷写到磁盘上。(默认的刷写机制)

    过期文件删除机制

      因:所有的写操作都在最后一个文件(CommitLog,ConsumeQueue)上,之前的文件在下一个文件创建完成后将不会再被更新。

      果:清除文件的方法是:如果非当前文件在一定时间间隔内没有再次被更新,则认为是过期文件,可以被删除。

    待补充:消息的消费具体工作方式。

  • 相关阅读:
    [知识点]计算几何I——基础知识与多边形面积
    [旧版][知识点]SPFA算法
    [旧版][知识点]A*搜索(启发式搜索)
    [知识点]线段树
    [小工具]ChemistryHelper
    [考试]20150314
    [知识点]Cantor展开
    [旧版][知识点]拓扑排序
    [无效]网络流之Dinic算法
    [SCOI2005]扫雷Mine
  • 原文地址:https://www.cnblogs.com/chen--biao/p/10166546.html
Copyright © 2011-2022 走看看