这个load操作发生在启动broker的时候。

所以我们直接进入DefaultMessageStore的load()方法:

  1. /**
  2. * 加载数据
  3. *
  4. * @throws IOException
  5. */
  6. public boolean load() {
  7. boolean result = true;
  8.  
  9. try {
  10. boolean lastExitOK = !this.isTempFileExist();
  11. log.info("last shutdown {}", (lastExitOK ? "normally" : "abnormally"));
  12.  
  13. // load 定时进度
  14. // 这个步骤要放置到最前面,从CommitLog里Recover定时消息需要依赖加载的定时级别参数
  15. // slave依赖scheduleMessageService做定时消息的恢复
  16. if (null != scheduleMessageService) {
  17. result = result && this.scheduleMessageService.load();
  18. }
  19.  
  20. // load Commit Log
  21. result = result && this.commitLog.load();
  22.  
  23. // load Consume Queue
  24. result = result && this.loadConsumeQueue();
  25.  
  26. if (result) {
  27. this.storeCheckpoint =
  28. new StoreCheckpoint(StorePathConfigHelper.getStoreCheckpoint(this.messageStoreConfig.getStorePathRootDir()));
  29.  
  30. this.indexService.load(lastExitOK);
  31.  
  32. // 尝试恢复数据
  33. this.recover(lastExitOK);
  34.  
  35. log.info("load over, and the max phy offset = {}", this.getMaxPhyOffset());
  36. }
  37. } catch (Exception e) {
  38. log.error("load exception", e);
  39. result = false;
  40. }
  41.  
  42. if (!result) {
  43. this.allocateMapedFileService.shutdown();
  44. }
  45.  
  46. return result;
  47. }

新开了一篇来写:http://www.cnblogs.com/guazi/p/6836112.html

RocketMQ之broker读取本地文件数据的更多相关文章

  1. .NET 读取本地文件绑定到GridViewRow

    wjgl.aspx.cs: using System; using System.Collections; using System.Configuration; using System.Data; ...

  2. 【转】flash air中读取本地文件的三种方法

    actionscript中读取本地文件操作有两种代码如下 1.使用File和FileStream两个类,FileStream负责读取数据的所以操作:(同步操作) var stream:FileStre ...

  3. H5读取本地文件操作

    H5读取本地文件操作 本文转自:转:http://hushicai.com/2014/03/29/html5-du-qu-ben-di-wen-jian.html感谢大神分享. 常见的语言比如php. ...

  4. FileReader读取本地文件

    FileReader是一种异步读取文件机制,结合input:file可以很方便的读取本地文件. 一.input:type[file] file类型的input会渲染为一个按钮和一段文字.点击按钮可打开 ...

  5. spark读取本地文件

    /** * Read a text file from HDFS, a local file system (available on all nodes), or any * Hadoop-supp ...

  6. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  7. 前台JS(type=‘file’)读取本地文件的内容,兼容各种浏览器

    [自己测了下,能兼容各种浏览器,但是读取中文会出现乱码.自己的解决方法是用notepad++把txt文件编码改为utf-8(应该是和浏览器编码保持一致吧?..)] 原文  http://blog.cs ...

  8. 上传读取Excel文件数据

    /// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...

  9. 手工创建tomcat应用,以及实现js读取本地文件内容

    手工创建tomcat应用: 1.在webapps下面新建应用目录文件夹 2.在文件夹下创建或是从其他应用中复制:META-INF,WEB-INF这两个文件夹, 其中META-INF清空里面,WEB-I ...

随机推荐

  1. 浅谈redux 中间件的原理

    在使用redux管理异步数据流的时候,我们会使用中间件,以redux-thunk中间件为例,我们做一下分析: 首先是构建store,我们需要以下代码进行揉入中间件的类似creatStore函数的构造: ...

  2. Vmware中安装和卸载Linux 16.04.3

    1.先去这个链接 https://www.ubuntu.com/download ,下载ubuntu镜像,也就是下图的download选项 2.下载后到虚拟机里创建一个新的虚拟机,然后按照博客 htt ...

  3. Mac-sublime text 3破解版

    在史蒂芬周下载破解版 安装package control import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f ...

  4. 解决:org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform

    centos7.3 启动tomcat 出现错误: 八月 08, 2017 4:58:47 下午 org.apache.catalina.core.StandardEngine startInterna ...

  5. java 单元测试框架

    @Test:测试方法(A) (expected=XXEception.class)(B) (timeout=xxx)@Ignore: 被忽略的测试方法. //该方法 不会执行@Before: 每一个测 ...

  6. Django组件之contenttype的应用

    contenttypes 是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 每当我们创建了新的model并执行数据库迁移后,Conte ...

  7. 一次处理CentOS服务器被攻击往外发广播包

    情况是这样:我们在某地托管的一台linux服务器,突然接到机房电话说是我们机器将整个IDC网络搞瘫了.外部机器没法访问IDC.  挂掉电话后:我就开始考虑,托管机器的机房是有硬防的,我本身一台机器怎么 ...

  8. springCloud Zuul网关

    1.springboot 仅2.0.x 支持,在此选择 2.0.7 2.新建Module eureka-zuul-client 3.导入依赖 <?xml version="1.0&qu ...

  9. 【互动问答分享】第6期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第6期互动问答分享] Q1:spark streaming 可以不同数据流 join吗? Spark Streaming不同的数据流 ...

  10. flutter ui

    快速生成无状态模板 void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget ...