1 Star 0 Fork 0

le1024 / le1024

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
15_activemq可持久化机制-KahaDB.md 1.85 KB
一键复制 编辑 原始数据 按行查看 历史
le1024 提交于 2022-04-28 10:27 . m

KahaDB

KahaDB是一个基于文件的持久性数据库,从5.4版本开始默认使用,类似于redis的AOF

具有更好的快速持久性

配置

查看 activemq.xml

image-20210816215101133

在activemq安装路径下,activemq/data/hahadb,可以看到db文件

image-20210816215220208

KahaDB存储原理

KahaDB目前是默认的存储方式,可用于任何场景,提高了性能和恢复能力.

消息存储使用一个事务日志和一个索引来存储他所有的地址.

KahaDB数据保存目录有4类文件加1个lock文件。

db-1.logdb.datadb.freedb.redolock

  • db-<number>.log存消息数据,number表示存储消息达到预定的大小时,文件的命令方式。当文件满时,会创建一个新的文件,number值是随之递增的,db-1.log,db-2.log,db-3.log..... 当不再有消息存到数据文件中时,文件会被删除或存档

    存的是具体的消息数据

  • db.data包含了持久化的B-Tree索引,索引了消息数据记录中(db-.log)的消息,他是消息的索引文件,本质上是B-Tree,使用B-Tree作为索引指向db-<number>.log里面的存储的数据

    索引文件

  • db-free 记录db.data文件里面的空闲页面,存的是空闲页的id,方便建立索引时,先从空闲的开始建立保证索引的连续性,没有碎片

  • db.redo 进行消息恢复,如果kahaDB消息存储强制退出后启动,用于恢复B-Tree索引

  • lock文件锁,表示当前获取kahaDB读写权限的broker,类似mysql的悲观锁

1
https://gitee.com/le1024/le1024.git
git@gitee.com:le1024/le1024.git
le1024
le1024
le1024
master

搜索帮助