Java开发手册版本说明及下载

版本由来说明

传说中的Java开发手册华山版、泰山版、嵩山版、黄山版眼花缭乱,它们之间到底什么关系,看完下面的介绍,你就会有清晰的认识。
Java开发手册版本历史:

版本号版本名称发布时间
1.0.0公开版2016.12.07
1.1.0正式版2017.02.27
1.2.0升级版2017.05.20
1.3.0终极版2017.09.19
1.4.0详尽版2018.06.06
1.5.0华山版2019.06.13
1.6.0泰山版2020.04.22
1.7.0嵩山版2020.08.03
1.7.1黄山版2022.02.03

原作者述:
最初的版本,没有名称,只有版本号,从1.0.0开始,后来感觉并不利于传播,改成以五岳来命名。因为华山最有武侠渊源,所以第一个版本叫做《华山版》,边上的码出真功有点向周星驰电影功夫最后的场景《如来神掌》致敬的味道;华山之后,去五岳至尊泰山朝圣,感受东海日出的壮观;泰山之后,去往嵩山,因为那里有一个金庸先生笔下武功最高的人物——扫地僧,所以封面用了扫地僧的原型。印象最深的是封面,太阳下的扫地僧在台阶上的影子,来来回回还改了好几次,为了逼真,我觉得影子需要有点折子的感觉,表达这是台阶上的影子;嵩山之后,不出意外是恒山版,为此还去了悬空寺,结果无意中发现恒山和衡山的发音居然完全相同,这个在表达上是大忌,增加无谓的共同成本;为此还公开征集下一个版本名称,收到:天山版,屏峰版,玉山版,黄山版…,最后选择了黄山版,是那句诗:五岳归来不看山,黄山归来不看岳,那就遗忘掉以前的版本。

RocketMQ中的零拷贝

零拷贝

什么是零拷贝?
所谓零拷贝就是避免数据在内核空间缓冲区和用户空间缓冲区之间的复制,避免CPU拷贝对CPU资源的消耗。

零拷贝的两种实现方式:

  • mmap + write方式
    优点:即使频繁调用,使用小块文件传输,效率也很高。
    缺点:不能很好的利用DMA方式,会比sendfile多消耗 CPU,内存安全性控制复杂,需要避免JVM Crash问题。
  • sendfile方式

RocketMQ的存储设计

消息存储结构

RocketMQ消息存储默认路径:${user.home}\store\

消息存储结构包括:

  • commitlog 消息存储目录
  • config 运行期间的配置信息
  • consumequeue 消息消费队列存储目录
  • index 消息索引文件存储目录
  • abort 如果存在abort文件,说明broker非正常关闭;该文件默认启动时创建,正常退出之前删除;
  • checkpoint 文件检测点,存储commitlog文件最后一次刷盘时间戳、consumequeue最后一次刷盘时间、index索引文件最后一次刷盘时间戳。