/** * Message will put to here first, and then reput to FileChannel if writeBuffer is not null. */ protected ByteBuffer writeBuffer = null;
看MappedFile里面,有一个这样的buffer,然后查看他的用途,是消息先写到这个里面了,而每次rocketmq出现流控的时候,就是写这个buffer耗时很大的时候。。 所以我想问题这么设计的初衷是什么呢?直接用channel刷pageCache的话,和先写buffer,再刷channel的区别在什么地方呢?