首先說下kahaDB使用基礎(chǔ):
- 基于日志文件的持久化機(jī)制,在activeMQ5.4版本之后默認(rèn)使用此方式赏迟;
-
配置方式為:conf/activemq.xml中的<persistenceAdapter>標(biāo)簽中kahadb配置.png
- 默認(rèn)將數(shù)據(jù)存儲(chǔ)到了data/kahadb文件夾中;
- kahadb存儲(chǔ)原理說明:
1)首先概念介紹:主要是消息存儲(chǔ)使用一個(gè)事務(wù)日志和僅僅用一個(gè)索引文件來存儲(chǔ)她所有的數(shù)據(jù)地址甩栈;
2)相關(guān)文件說明:
文件目錄:
data
》kahadb
》db-1.log
db-2.log
db.data
db.free
db.redo
lock
db-<number>.log:kahadb存儲(chǔ)消息到預(yù)定大小的log文件中糕再,文件命名:db-1.log;當(dāng)不再有引用到數(shù)據(jù)文件中的任何消息時(shí)量没,文件回被刪除或者歸檔突想;
db.data:該文件包含了持久化的BTree索引,是消息的索引文件猾担,本質(zhì)是B_Tree(B樹)指向db-<number>.log文件中的存儲(chǔ)的消息。
db.redo:用來進(jìn)行恢復(fù)消息的绑嘹,如果kahadb消息存儲(chǔ)再強(qiáng)制退出后啟動(dòng),用來恢復(fù)BTree索引文件姨丈;
lock:文件鎖畅卓,標(biāo)識(shí)當(dāng)前獲得kahadb讀取權(quán)限的broker构挤;
db.free:用來記錄空白索引的;
此方式和Mysql存儲(chǔ)方式極為相似:通過存儲(chǔ)索引文件和數(shù)據(jù)文件來實(shí)現(xiàn)筋现,通過索引指向?qū)?yīng)數(shù)據(jù)。