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

    消息存储

      主要的存储文件:

      1、消息文件(commitLog)

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

      3、Hash索引文件(IndexFile)

      4、检测点文件(checkpoint)

      5、关闭异常文件(abort)

    文件刷盘机制

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

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

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

    过期文件删除机制

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

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

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

  • 相关阅读:
    主键、外键和索引的区别
    设置session超时的三种方式
    redis常用操作
    timestamp 转 date 处理后再转timestamp
    fragment在水平/垂直时的应用
    Activity堆栈管理
    ORMLite的使用
    onItemLongClick事件的监听
    Bundle的使用
    有关implicit Intent的使用
  • 原文地址:https://www.cnblogs.com/chen--biao/p/10166546.html
Copyright © 2011-2022 走看看