store模块阅读5:AppendMessageCallback

2017-10-10  本文已影响68人  赤子心_d709

说明

Write messages callback interface
写消息的接口,返回AppendMessageResult代表追加到MappedFile的结果
在MappedFile#appendMessagesInner中被调用

区分消息是MessageExtBrokerInner 还是 MessageExtBatch
实现类是 CommitLog.DefaultAppendMessageCallback,讲到commitLog时再讲

代码

直接把代码和注释贴上

public interface AppendMessageCallback {

    /**
     * 参数说明:
     * fileFromOffset是mappedFile文件名,一般为long型,20位数字
     * maxBlank是文件剩余可用空间
     */

    /**
     * After message serialization, write MapedByteBuffer
     * 处理一条消息,写入commitLog,返回结果
     * @return How many bytes to write
     */
    AppendMessageResult doAppend(final long fileFromOffset, final ByteBuffer byteBuffer,
        final int maxBlank, final MessageExtBrokerInner msg);

    /**
     * After batched message serialization, write MapedByteBuffer
     * 处理一批消息,写入commitLog,返回结果
     * @param messageExtBatch, backed up by a byte array
     * @return How many bytes to write
     */
    AppendMessageResult doAppend(final long fileFromOffset, final ByteBuffer byteBuffer,
        final int maxBlank, final MessageExtBatch messageExtBatch);
}

吐槽

这个完全和回调没关系啊,为什么叫callback.就是被调用时,同步写到mappedFile返回AppendMessageResult,不涉及回调逻辑

上一篇 下一篇

猜你喜欢

热点阅读