240 发简信
IP属地:北京
  • 请教个问题哈,DefaultMessageStore#checkInDiskByCommitOffset 这个方法来检查消息是否在内存中,40% 这个逻辑是怎么形成的呢?是依照什么指标决定出来的呢?

    个人想了一下,使用内存的地方可能如下:(现在对 RocketMQ 的整体还不太了解,可能不准确)
    1,启动 rocketmq 的 jvm 内存。记得官方推荐 16G 内存的机器,runbroker.sh 里默认是 8G。这样的内存就剩下 50%了。
    2,除了 CommitLog 外,Index、ConsumeQueue 等会占用一部分 page cache 内存,这些文件不算太大,我们估计成占用 10% 的内存。
    3,系统占用内存忽略。

    上面占用内存统计后,大约是 60%,剩下的 40% 内存是 CommitLog 所占用,所以 checkInDiskByCommitOffset 方法里,计算是否在内存中时,使用的是系统内存的 40%。不知道这样从结果推原因,是不是准确。

    rocket mq 底层存储源码分析(7)-业务消息查询

    本章节是《rocket mq 底层存储源码分析》系列的最后一章,我们结合【逻辑位移索引】以及【key查询索引】,从低层接口分析如何利用这两类索引,为上层业务接口提供查询业务消...

  • 写的RocketMQ部分非常好,RocketMQ系列最近有更新计划吗

    rocket mq 底层存储源码分析(7)-业务消息查询

    本章节是《rocket mq 底层存储源码分析》系列的最后一章,我们结合【逻辑位移索引】以及【key查询索引】,从低层接口分析如何利用这两类索引,为上层业务接口提供查询业务消...

  • >另一种方式就是,一个被称为工作区的可以让ForkJoinPool平行放置的 parallelStream() 实现。
    >不幸的是现在的JDK还没有实现。

    在网上看到一篇文章,下面的代码应该可以实现:
    forkJoinPool.submit(() ->
    range(1, 1_000_000).parallel().filter(PrimesPrint::isPrime)
    .collect(toList())
    ).get();

    深入浅出parallelStream

    about Stream 什么是流? Stream是java8中新增加的一个特性,被java猿统称为流. Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法...

  • 文章写的挺好的,特别是aggregate那段,特别容易理解。
    有个问题,感觉fold()那段是不是有点小问题。
    文章中说到fold的计算方法是: zerovalue(0) + 1 + 2 + 3 + 4,
    但把zerovalue设置成1的话,结果是13,按照上面的算法就不匹配了。

    Spark的fold()和aggregate()函数

    转载请注明出处:http://www.jianshu.com/p/15739e95a46e@贰拾贰画生 最近在学习spark,理解这两个函数时候费了一些劲,现在记录一下。 1...

  • Spring AOP源码解读1 - 程序入口

    前言 最近看了《从零开始写JavaWeb框架》,想比较一下Spring AOP的实现方式和书的上实现方式有什么不同,所以先把Spring AOP的源码读一下,再进行比较。 S...

  • @whthomas 在你的console里输出的文字带颜色,非常容易查看log情况。请问这个是那个IDE自带的功能吗,还是用了什么theme?如果是theme的话,请问用的是什么 theme(我昨天也查了一下eclipse theme,看你的theme, 有点像Eclipse Moonrise UI,但这个theme在console输出的log没有颜色.)

    Spring Boot -- 启动彩蛋

    使用Spring Boot启动的jar包总是会显示一个Spring的图标: 实际上Spring Boot在这个位置,放了一个彩蛋,我们是可以自定义这个图标的。 我们可以在re...

  • 请问黑色的图中的IDE是什么IDE?

    Spring Boot -- 启动彩蛋

    使用Spring Boot启动的jar包总是会显示一个Spring的图标: 实际上Spring Boot在这个位置,放了一个彩蛋,我们是可以自定义这个图标的。 我们可以在re...