com.alibaba.rocketmq.store
接口 MessageStore

所有已知实现类:
DefaultMessageStore

public interface MessageStore

存储层对外提供的接口

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

方法摘要
 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 excuteDeleteFilesManualy()
          手动触发删除文件
 SelectMapedBufferResult getCommitLogData(long offset)
          数据复制使用:获取CommitLog数据
 long getCommitLogOffsetInQueue(String topic, int queueId, long cqOffset)
          获取消费队列记录的CommitLog Offset
 long getEarliestMessageTime(String topic, int queueId)
          获取队列中最早的消息时间
 long getMaxOffsetInQuque(String topic, int queueId)
          获取指定队列最大Offset 如果队列不存在,返回-1
 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
 long getMessageStoreTimeStamp(String topic, int queueId, long offset)
           
 long getMessageTotalInQueue(String topic, int queueId)
          获取队列中的消息总数
 long getMinOffsetInQuque(String topic, int queueId)
          获取指定队列最小Offset 如果队列不存在,返回-1
 long getMinPhyOffset()
           
 long getOffsetInQueueByTime(String topic, int queueId, long timestamp)
          根据消息时间获取某个队列中对应的offset 1、如果指定时间(包含之前之后)有对应的消息,则获取距离此时间最近的offset(优先选择之前) 2、如果指定时间无对应消息,则返回0
 String getRunningDataInfo()
          获取运行时统计数据
 HashMap<String,String> getRuntimeInfo()
          获取运行时统计数据
 boolean load()
          重启时,加载数据
 MessageExt lookMessageByOffset(long commitLogOffset)
          通过物理队列Offset,查询消息。
 long now()
           
 PutMessageResult putMessage(MessageExtBrokerInner msg)
          存储消息
 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 updateHaMasterAddress(String newAddr)
           
 

方法详细信息

load

boolean load()
重启时,加载数据


start

void start()
           throws Exception
启动服务

抛出:
Exception

shutdown

void shutdown()
关闭服务


destroy

void destroy()
删除所有文件,单元测试会使用


putMessage

PutMessageResult putMessage(MessageExtBrokerInner msg)
存储消息


getMessage

GetMessageResult getMessage(String group,
                            String topic,
                            int queueId,
                            long offset,
                            int maxMsgNums,
                            SubscriptionData subscriptionData)
读取消息,如果types为null,则不做过滤


getMaxOffsetInQuque

long getMaxOffsetInQuque(String topic,
                         int queueId)
获取指定队列最大Offset 如果队列不存在,返回-1


getMinOffsetInQuque

long getMinOffsetInQuque(String topic,
                         int queueId)
获取指定队列最小Offset 如果队列不存在,返回-1


getCommitLogOffsetInQueue

long getCommitLogOffsetInQueue(String topic,
                               int queueId,
                               long cqOffset)
获取消费队列记录的CommitLog Offset


getOffsetInQueueByTime

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


lookMessageByOffset

MessageExt lookMessageByOffset(long commitLogOffset)
通过物理队列Offset,查询消息。 如果发生错误,则返回null


selectOneMessageByOffset

SelectMapedBufferResult selectOneMessageByOffset(long commitLogOffset)
通过物理队列Offset,查询消息。 如果发生错误,则返回null


selectOneMessageByOffset

SelectMapedBufferResult selectOneMessageByOffset(long commitLogOffset,
                                                 int msgSize)

getRunningDataInfo

String getRunningDataInfo()
获取运行时统计数据


getRuntimeInfo

HashMap<String,String> getRuntimeInfo()
获取运行时统计数据


getMaxPhyOffset

long getMaxPhyOffset()
获取物理队列最大offset


getMinPhyOffset

long getMinPhyOffset()

getEarliestMessageTime

long getEarliestMessageTime(String topic,
                            int queueId)
获取队列中最早的消息时间


getMessageStoreTimeStamp

long getMessageStoreTimeStamp(String topic,
                              int queueId,
                              long offset)

getMessageTotalInQueue

long getMessageTotalInQueue(String topic,
                            int queueId)
获取队列中的消息总数


getCommitLogData

SelectMapedBufferResult getCommitLogData(long offset)
数据复制使用:获取CommitLog数据


appendToCommitLog

boolean appendToCommitLog(long startOffset,
                          byte[] data)
数据复制使用:向CommitLog追加数据,并分发至各个Consume Queue


excuteDeleteFilesManualy

void excuteDeleteFilesManualy()
手动触发删除文件


queryMessage

QueryMessageResult queryMessage(String topic,
                                String key,
                                int maxNum,
                                long begin,
                                long end)
根据消息Key查询消息


updateHaMasterAddress

void updateHaMasterAddress(String newAddr)

slaveFallBehindMuch

long slaveFallBehindMuch()
Slave落后Master多少,单位字节


now

long now()

cleanUnusedTopic

int cleanUnusedTopic(Set<String> topics)

cleanExpiredConsumerQueue

void cleanExpiredConsumerQueue()
清除失效的消费队列


getMessageIds

Map<String,Long> getMessageIds(String topic,
                               int queueId,
                               long minOffset,
                               long maxOffset,
                               SocketAddress storeHost)
批量获取 messageId


checkInDiskByConsumeOffset

boolean checkInDiskByConsumeOffset(String topic,
                                   int queueId,
                                   long consumeOffset)
判断消息是否在磁盘



Copyright © 2012–2015. All rights reserved.