说明
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,不涉及回调逻辑
网友评论