美文网首页
store模块阅读5:AppendMessageCallback

store模块阅读5:AppendMessageCallback

作者: 赤子心_d709 | 来源:发表于2017-10-10 17:14 被阅读68次

说明

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,不涉及回调逻辑

相关文章

网友评论

      本文标题:store模块阅读5:AppendMessageCallback

      本文链接:https://www.haomeiwen.com/subject/pycbyxtx.html