接口 com.taobao.common.store.Store
的使用

使用 Store 的软件包
com.taobao.common.store.journal   
com.taobao.common.store.memory   
com.taobao.metamorphosis.client.consumer   
com.taobao.metamorphosis.client.extension.producer   
com.taobao.metamorphosis.client.extension.storage   
 

com.taobao.common.store.journalStore 的使用
 

实现 Storecom.taobao.common.store.journal 中的类
 class JournalStore
          一个通过日志文件实现的key/value对的存储 key必须是16字节
1、数据文件和日志文件在一起,不记录索引文件
name.1 name.1.log
2、data为真正的数据,顺序存放,使用引用计数
3、log为操作+key+偏移量
4、添加数据时,先添加name.1,获得offset和length,然后记录日志,增加引用计数,然后加入或更新内存索引
5、删除数据时,记录日志,删除内存索引,减少文件计数,判断大小是否满足大小了,并且无引用了,就删除数据文件和日志文件
6、获取数据时,直接从内存索引获得数据偏移量
7、更新数据时,调用添加
8、启动时,遍历每一个log文件,通过日志的操作恢复内存索引
 

com.taobao.common.store.memoryStore 的使用
 

实现 Storecom.taobao.common.store.memory 中的类
 class MemStore
           
 

com.taobao.metamorphosis.client.consumerStore 的使用
 

返回 Storecom.taobao.metamorphosis.client.consumer 中的方法
 Store RecoverStorageManager.getOrCreateStore(String topic, String group)
           
 

com.taobao.metamorphosis.client.extension.producerStore 的使用
 

类型参数类型为 Storecom.taobao.metamorphosis.client.extension.producer 中的字段
protected  ConcurrentHashMap<String,FutureTask<Store>> LocalMessageStorageManager.topicStoreMap
          表示以topic@partition为单位的store map
 

返回 Storecom.taobao.metamorphosis.client.extension.producer 中的方法
protected  Store LocalMessageStorageManager.getOrCreateStore(String topic, Partition partition)
           
protected  Store OrderedLocalMessageStorageManager.newStore(String name)
           
protected  Store LocalMessageStorageManager.newStore(String name)
           
 

com.taobao.metamorphosis.client.extension.storageStore 的使用
 

实现 Storecom.taobao.metamorphosis.client.extension.storage 中的类
 class MessageStore
          保证先进先出顺序的JournalStore
 



Copyright © 2010–2013. All rights reserved.