com.alibaba.rocketmq.store
类 DefaultMessageStore

java.lang.Object
  继承者 com.alibaba.rocketmq.store.DefaultMessageStore
所有已实现的接口:
MessageStore

public class DefaultMessageStore
extends Object
implements MessageStore

存储层默认实现

从以下版本开始:
2013-7-21
作者:
shijia.wxr

构造方法摘要
DefaultMessageStore(MessageStoreConfig messageStoreConfig, BrokerStatsManager brokerStatsManager)
           
 
方法摘要
 boolean appendToCommitLog(long startOffset, byte[] data)
          数据复制使用:向CommitLog追加数据,并分发至各个Consume Queue
 boolean checkInDiskByConsumeOffset(String topic, int queueId, long consumeOffset)
          判断消息是否在磁盘
 void cleanExpiredConsumerQueue()
          清除失效的消费队列
 int cleanUnusedTopic(Set<String> topics)
           
 void destroy()
          删除所有文件,单元测试会使用
 void destroyLogics()
           
 void excuteDeleteFilesManualy()
          手动触发删除文件
 ConsumeQueue findConsumeQueue(String topic, int queueId)
           
 RunningFlags getAccessRights()
           
 AllocateMapedFileService getAllocateMapedFileService()
           
 BrokerStatsManager getBrokerStatsManager()
           
 CommitLog getCommitLog()
           
 SelectMapedBufferResult getCommitLogData(long offset)
          数据复制使用:获取CommitLog数据
 long getCommitLogOffsetInQueue(String topic, int queueId, long cqOffset)
          获取消费队列记录的CommitLog Offset
 ConcurrentHashMap<String,ConcurrentHashMap<Integer,ConsumeQueue>> getConsumeQueueTable()
           
 com.alibaba.rocketmq.store.DefaultMessageStore.DispatchMessageService getDispatchMessageService()
           
 long getEarliestMessageTime(String topic, int queueId)
          获取队列中最早的消息时间
 HAService getHaService()
           
 long getMaxOffsetInQuque(String topic, int queueId)
          返回的是当前队列的最大Offset,这个Offset没有对应的消息
 long getMaxPhyOffset()
          获取物理队列最大offset
 GetMessageResult getMessage(String group, String topic, int queueId, long offset, int maxMsgNums, SubscriptionData subscriptionData)
          读取消息,如果types为null,则不做过滤
 Map<String,Long> getMessageIds(String topic, int queueId, long minOffset, long maxOffset, SocketAddress storeHost)
          批量获取 messageId
 MessageStoreConfig getMessageStoreConfig()
           
 long getMessageStoreTimeStamp(String topic, int queueId, long offset)
           
 long getMessageTotalInQueue(String topic, int queueId)
          获取队列中的消息总数
 long getMinOffsetInQuque(String topic, int queueId)
          返回的是当前队列的最小Offset
 long getMinPhyOffset()
           
 long getOffsetInQueueByTime(String topic, int queueId, long timestamp)
          根据消息时间获取某个队列中对应的offset 1、如果指定时间(包含之前之后)有对应的消息,则获取距离此时间最近的offset(优先选择之前) 2、如果指定时间无对应消息,则返回0
 String getRunningDataInfo()
          获取运行时统计数据
 RunningFlags getRunningFlags()
           
 HashMap<String,String> getRuntimeInfo()
          获取运行时统计数据
 ScheduleMessageService getScheduleMessageService()
           
 StoreCheckpoint getStoreCheckpoint()
           
 StoreStatsService getStoreStatsService()
           
 SystemClock getSystemClock()
           
 boolean load()
          加载数据
 MessageExt lookMessageByOffset(long commitLogOffset)
          通过物理队列Offset,查询消息。
 MessageExt lookMessageByOffset(long commitLogOffset, int size)
           
 long now()
           
 void putDispatchRequest(DispatchRequest dispatchRequest)
           
 PutMessageResult putMessage(MessageExtBrokerInner msg)
          存储消息
 void putMessagePostionInfo(String topic, int queueId, long offset, int size, long tagsCode, long storeTimestamp, long logicOffset)
           
 QueryMessageResult queryMessage(String topic, String key, int maxNum, long begin, long end)
          根据消息Key查询消息
 SelectMapedBufferResult selectOneMessageByOffset(long commitLogOffset)
          通过物理队列Offset,查询消息。
 SelectMapedBufferResult selectOneMessageByOffset(long commitLogOffset, int msgSize)
           
 void shutdown()
          关闭存储服务
 long slaveFallBehindMuch()
          Slave落后Master多少,单位字节
 void start()
          启动存储服务
 void truncateDirtyLogicFiles(long phyOffset)
           
 void updateHaMasterAddress(String newAddr)
           
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

DefaultMessageStore

public DefaultMessageStore(MessageStoreConfig messageStoreConfig,
                           BrokerStatsManager brokerStatsManager)
                    throws IOException
抛出:
IOException
方法详细信息

truncateDirtyLogicFiles

public void truncateDirtyLogicFiles(long phyOffset)

load

public boolean load()
加载数据

指定者:
接口 MessageStore 中的 load
抛出:
IOException

cleanExpiredConsumerQueue

public void cleanExpiredConsumerQueue()
从接口 MessageStore 复制的描述
清除失效的消费队列

指定者:
接口 MessageStore 中的 cleanExpiredConsumerQueue

start

public void start()
           throws Exception
启动存储服务

指定者:
接口 MessageStore 中的 start
抛出:
Exception

shutdown

public void shutdown()
关闭存储服务

指定者:
接口 MessageStore 中的 shutdown

destroy

public void destroy()
从接口 MessageStore 复制的描述
删除所有文件,单元测试会使用

指定者:
接口 MessageStore 中的 destroy

destroyLogics

public void destroyLogics()

putMessage

public PutMessageResult putMessage(MessageExtBrokerInner msg)
从接口 MessageStore 复制的描述
存储消息

指定者:
接口 MessageStore 中的 putMessage

getSystemClock

public SystemClock getSystemClock()

getMessage

public GetMessageResult getMessage(String group,
                                   String topic,
                                   int queueId,
                                   long offset,
                                   int maxMsgNums,
                                   SubscriptionData subscriptionData)
从接口 MessageStore 复制的描述
读取消息,如果types为null,则不做过滤

指定者:
接口 MessageStore 中的 getMessage

getMaxOffsetInQuque

public long getMaxOffsetInQuque(String topic,
                                int queueId)
返回的是当前队列的最大Offset,这个Offset没有对应的消息

指定者:
接口 MessageStore 中的 getMaxOffsetInQuque

getMinOffsetInQuque

public long getMinOffsetInQuque(String topic,
                                int queueId)
返回的是当前队列的最小Offset

指定者:
接口 MessageStore 中的 getMinOffsetInQuque

getOffsetInQueueByTime

public long getOffsetInQueueByTime(String topic,
                                   int queueId,
                                   long timestamp)
从接口 MessageStore 复制的描述
根据消息时间获取某个队列中对应的offset 1、如果指定时间(包含之前之后)有对应的消息,则获取距离此时间最近的offset(优先选择之前) 2、如果指定时间无对应消息,则返回0

指定者:
接口 MessageStore 中的 getOffsetInQueueByTime

lookMessageByOffset

public MessageExt lookMessageByOffset(long commitLogOffset)
从接口 MessageStore 复制的描述
通过物理队列Offset,查询消息。 如果发生错误,则返回null

指定者:
接口 MessageStore 中的 lookMessageByOffset

selectOneMessageByOffset

public SelectMapedBufferResult selectOneMessageByOffset(long commitLogOffset)
从接口 MessageStore 复制的描述
通过物理队列Offset,查询消息。 如果发生错误,则返回null

指定者:
接口 MessageStore 中的 selectOneMessageByOffset

selectOneMessageByOffset

public SelectMapedBufferResult selectOneMessageByOffset(long commitLogOffset,
                                                        int msgSize)
指定者:
接口 MessageStore 中的 selectOneMessageByOffset

getRunningDataInfo

public String getRunningDataInfo()
从接口 MessageStore 复制的描述
获取运行时统计数据

指定者:
接口 MessageStore 中的 getRunningDataInfo

getRuntimeInfo

public HashMap<String,String> getRuntimeInfo()
从接口 MessageStore 复制的描述
获取运行时统计数据

指定者:
接口 MessageStore 中的 getRuntimeInfo

getMaxPhyOffset

public long getMaxPhyOffset()
从接口 MessageStore 复制的描述
获取物理队列最大offset

指定者:
接口 MessageStore 中的 getMaxPhyOffset

getEarliestMessageTime

public long getEarliestMessageTime(String topic,
                                   int queueId)
从接口 MessageStore 复制的描述
获取队列中最早的消息时间

指定者:
接口 MessageStore 中的 getEarliestMessageTime

getMessageStoreTimeStamp

public long getMessageStoreTimeStamp(String topic,
                                     int queueId,
                                     long offset)
指定者:
接口 MessageStore 中的 getMessageStoreTimeStamp

getMessageTotalInQueue

public long getMessageTotalInQueue(String topic,
                                   int queueId)
从接口 MessageStore 复制的描述
获取队列中的消息总数

指定者:
接口 MessageStore 中的 getMessageTotalInQueue

getCommitLogData

public SelectMapedBufferResult getCommitLogData(long offset)
从接口 MessageStore 复制的描述
数据复制使用:获取CommitLog数据

指定者:
接口 MessageStore 中的 getCommitLogData

appendToCommitLog

public boolean appendToCommitLog(long startOffset,
                                 byte[] data)
从接口 MessageStore 复制的描述
数据复制使用:向CommitLog追加数据,并分发至各个Consume Queue

指定者:
接口 MessageStore 中的 appendToCommitLog

excuteDeleteFilesManualy

public void excuteDeleteFilesManualy()
从接口 MessageStore 复制的描述
手动触发删除文件

指定者:
接口 MessageStore 中的 excuteDeleteFilesManualy

queryMessage

public QueryMessageResult queryMessage(String topic,
                                       String key,
                                       int maxNum,
                                       long begin,
                                       long end)
从接口 MessageStore 复制的描述
根据消息Key查询消息

指定者:
接口 MessageStore 中的 queryMessage

updateHaMasterAddress

public void updateHaMasterAddress(String newAddr)
指定者:
接口 MessageStore 中的 updateHaMasterAddress

now

public long now()
指定者:
接口 MessageStore 中的 now

getCommitLog

public CommitLog getCommitLog()

lookMessageByOffset

public MessageExt lookMessageByOffset(long commitLogOffset,
                                      int size)

findConsumeQueue

public ConsumeQueue findConsumeQueue(String topic,
                                     int queueId)

getMessageStoreConfig

public MessageStoreConfig getMessageStoreConfig()

putMessagePostionInfo

public void putMessagePostionInfo(String topic,
                                  int queueId,
                                  long offset,
                                  int size,
                                  long tagsCode,
                                  long storeTimestamp,
                                  long logicOffset)

putDispatchRequest

public void putDispatchRequest(DispatchRequest dispatchRequest)

getDispatchMessageService

public com.alibaba.rocketmq.store.DefaultMessageStore.DispatchMessageService getDispatchMessageService()

getAllocateMapedFileService

public AllocateMapedFileService getAllocateMapedFileService()

getStoreStatsService

public StoreStatsService getStoreStatsService()

getAccessRights

public RunningFlags getAccessRights()

getConsumeQueueTable

public ConcurrentHashMap<String,ConcurrentHashMap<Integer,ConsumeQueue>> getConsumeQueueTable()

getStoreCheckpoint

public StoreCheckpoint getStoreCheckpoint()

getHaService

public HAService getHaService()

getScheduleMessageService

public ScheduleMessageService getScheduleMessageService()

getRunningFlags

public RunningFlags getRunningFlags()

getCommitLogOffsetInQueue

public long getCommitLogOffsetInQueue(String topic,
                                      int queueId,
                                      long cqOffset)
从接口 MessageStore 复制的描述
获取消费队列记录的CommitLog Offset

指定者:
接口 MessageStore 中的 getCommitLogOffsetInQueue

getMinPhyOffset

public long getMinPhyOffset()
指定者:
接口 MessageStore 中的 getMinPhyOffset

slaveFallBehindMuch

public long slaveFallBehindMuch()
从接口 MessageStore 复制的描述
Slave落后Master多少,单位字节

指定者:
接口 MessageStore 中的 slaveFallBehindMuch

cleanUnusedTopic

public int cleanUnusedTopic(Set<String> topics)
指定者:
接口 MessageStore 中的 cleanUnusedTopic

getMessageIds

public Map<String,Long> getMessageIds(String topic,
                                      int queueId,
                                      long minOffset,
                                      long maxOffset,
                                      SocketAddress storeHost)
从接口 MessageStore 复制的描述
批量获取 messageId

指定者:
接口 MessageStore 中的 getMessageIds

checkInDiskByConsumeOffset

public boolean checkInDiskByConsumeOffset(String topic,
                                          int queueId,
                                          long consumeOffset)
从接口 MessageStore 复制的描述
判断消息是否在磁盘

指定者:
接口 MessageStore 中的 checkInDiskByConsumeOffset

getBrokerStatsManager

public BrokerStatsManager getBrokerStatsManager()


Copyright © 2012–2015. All rights reserved.