RocketMQ源码系列(3)

·  阅读 57

在一道清醒的电光中,他意识到自己的心灵承载不起这么多往事的负重,他被自己和他人的回忆纠缠如同致命的长毛刺穿心房,不禁羡慕凋零玫瑰间横斜的蜘蛛网如此沉着,杂草毒麦如此坚韧,二月清晨的明亮空气如此从容。 ——《百年孤独》

如何让消息写入CommitLog文件近乎内存写性能的

Broker是基于OS操作系统的PageCache和顺序写两个机制,来提升写入CommitLog文件的性能的

image.png

首先Broker是以顺序的方式将消息写入CommitLog磁盘文件的,也就是每次写入就是在文件末尾追加一条数据就可以了,对文件进行顺序写的性能要比对文件随机写的性能提升很多

另外,数据写入CommitLog文件的时候,其实不是直接写入底层的物理磁盘文件的,而是先进入OS的PageCache内存缓存中,然后后续由OS的后台线程选一个时间,异步化的将OS PageCache内存缓冲中的数据刷入底层的磁盘文件

分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改