com.taobao.metamorphosis.server.store
类 MessageStore

java.lang.Object
  继承者 java.lang.Thread
      继承者 com.taobao.metamorphosis.server.store.MessageStore
所有已实现的接口:
Closeable, Runnable

public class MessageStore
extends Thread
implements Closeable

一个topic的消息存储,内部管理多个文件(segment)

作者:
boyan, wuhua

嵌套类摘要
 
从类 java.lang.Thread 继承的嵌套类/接口
Thread.State, Thread.UncaughtExceptionHandler
 
字段摘要
 
从类 java.lang.Thread 继承的字段
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
构造方法摘要
MessageStore(String topic, int partition, MetaConfig metaConfig, DeletePolicy deletePolicy)
           
MessageStore(String topic, int partition, MetaConfig metaConfig, DeletePolicy deletePolicy, long offsetIfCreate)
           
 
方法摘要
 void append(List<Long> msgIds, List<PutCommand> putCmds, AppendCallback cb)
          Append多个消息,返回写入的位置
 void append(long msgId, PutCommand req, AppendCallback cb)
          Append单个消息,返回写入的位置
 void close()
           
 void flush()
           
 String getDescription()
           
 long getMaxOffset()
          返回当前最大可读的offset
 long getMessageCount()
           
 long getMinOffset()
          返回当前最小可读的offset
 long getNearestOffset(long offset)
          返回离指定offset往前追溯最近的可用offset ,当传入的offset超出范围的时候返回边界offset
 int getPartition()
           
 List<SegmentInfo> getSegmentInfos()
           
 long getSizeInBytes()
           
 String getTopic()
           
 void replayAppend(long offset, int length, int checksum, List<Long> msgIds, List<PutCommand> reqs, AppendCallback cb)
          重放事务操作,如果消息没有存储成功,则重新存储,并返回新的位置
 void run()
           
 void runDeletePolicy()
           
 MessageSet slice(long offset, int maxSize)
          根据offset和maxSize返回所在MessageSet, 当offset超过最大offset的时候返回null, 当offset小于最小offset的时候抛出ArrayIndexOutOfBounds异常
 
从类 java.lang.Thread 继承的方法
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

MessageStore

public MessageStore(String topic,
                    int partition,
                    MetaConfig metaConfig,
                    DeletePolicy deletePolicy)
             throws IOException
抛出:
IOException

MessageStore

public MessageStore(String topic,
                    int partition,
                    MetaConfig metaConfig,
                    DeletePolicy deletePolicy,
                    long offsetIfCreate)
             throws IOException
抛出:
IOException
方法详细信息

getDescription

public String getDescription()

getMessageCount

public long getMessageCount()

getSizeInBytes

public long getSizeInBytes()

close

public void close()
           throws IOException
指定者:
接口 Closeable 中的 close
抛出:
IOException

runDeletePolicy

public void runDeletePolicy()

append

public void append(long msgId,
                   PutCommand req,
                   AppendCallback cb)
Append单个消息,返回写入的位置

参数:
msgId -
req -

run

public void run()
指定者:
接口 Runnable 中的 run
覆盖:
Thread 中的 run

append

public void append(List<Long> msgIds,
                   List<PutCommand> putCmds,
                   AppendCallback cb)
Append多个消息,返回写入的位置

参数:
msgIds -
reqs -

replayAppend

public void replayAppend(long offset,
                         int length,
                         int checksum,
                         List<Long> msgIds,
                         List<PutCommand> reqs,
                         AppendCallback cb)
                  throws IOException
重放事务操作,如果消息没有存储成功,则重新存储,并返回新的位置

参数:
to -
msgIds -
reqs -
抛出:
IOException

getTopic

public String getTopic()

getPartition

public int getPartition()

getSegmentInfos

public List<SegmentInfo> getSegmentInfos()

flush

public void flush()
           throws IOException
抛出:
IOException

getMaxOffset

public long getMaxOffset()
返回当前最大可读的offset

返回:

getMinOffset

public long getMinOffset()
返回当前最小可读的offset

返回:

slice

public MessageSet slice(long offset,
                        int maxSize)
                 throws IOException
根据offset和maxSize返回所在MessageSet, 当offset超过最大offset的时候返回null, 当offset小于最小offset的时候抛出ArrayIndexOutOfBounds异常

参数:
offset -
maxSize -
返回:
抛出:
IOException

getNearestOffset

public long getNearestOffset(long offset)
返回离指定offset往前追溯最近的可用offset ,当传入的offset超出范围的时候返回边界offset

参数:
offset -
返回:


Copyright © 2010–2013. All rights reserved.