首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏学习java的小白

    ActiveMQ学习之消息存储和可持久化

    持久化机制 为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制 ActiveMQ持久化机制有:JDBC、AMQ、KahaDB KahaDB是一个专门针对消息持久化的解决方案,他对典型的消息使用模式进行优化。数据被追加到data logs中。 kahadb文件组成: 1、进入到安装目录下data文件夹中,可以看到有个kahadb文件夹 ? 2、进入kahadb文件夹中,可以看到组成kahadb的文件 ? 消息存储在强制退出后启动,用于恢复B-Tree索引 lock:文件锁,表示当前获得Kahadb读写权限的broker

    96810发布于 2020-12-07
  • 来自专栏Java 学习

    MQ 系列之 ActiveMQ 消息持久化机制

    ActiveMQ 的消息持久化机制有 JDBC,AMQ,KahaDB 和 LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的。 【默认】 ☞ 概述   KahaDB 是从 ActiveMQ 5.4 开始默认的持久化存储方式,可用于任何场景,提高了性能和恢复能力。 ♞ db-<Number>.log:KahaDB 存储消息到预定义大小的数据记录文件中,文件命名为 db-xxx.log。 非常相似,也是基于文件的本地数据库储存形式,但是它提供比 KahaDB 更快的持久性。 目前默认的持久化方式仍然是 KahaDB,不过 LevelDB 持久化性能高于 KahaDB,可能是以后的趋势。

    1.6K20发布于 2020-12-14
  • 来自专栏王忘杰的小屋

    ActiveMQ高可用集群部署方案

    登录web平台,账号密码admin http://192.168.30.140:8161/ 三、部署Master-Slave模式 使用Shared Filesystem Master-Slave KahaDB http://activemq.apache.org/schema/core" brokerName="brokerA" dataDirectory="${activemq.data}"> 持久化配置 采用KahaDB 文件锁方式,让三个服务共用一个KahaDB文件,当主服务崩溃后,备用服务会自动运行。 activemq.xml vi /usr/local/mqcluster/mq2/conf/activemq.xml vi /usr/local/mqcluster/mq3/conf/activemq.xml 将 <kahaDB directory="${activemq.data}/kahadb"/> 修改为 <kahaDB directory="/usr/local/mqcluster/mq1/data/kahadb"/>

    1.9K20编辑于 2022-09-22
  • 来自专栏互联网研发闲思录

    zookeeper + LevelDB + ActiveMQ实现消息队列高可用

    activemq 配置禁用kahadb启用LevelDB 其中 zkAddress="127.0.0.1:2181" 为上边zoopkeeper 配置   <! -- 不采用kahadb方式   <persistenceAdapter>   <kahaDB directory="${activemq.data}/kahadb"/>   </persistenceAdapter

    1.3K50发布于 2018-01-03
  • 来自专栏山海散人技术

    025. ActiveMQ 持久化原理及事务机制

    ActiveMQ 持久化方案介绍 ---- ActiveMQ 的消息持久化机制有 JDBC、AMQ、KahaDB 和 LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的。 KahaDB 方式 ---- http://activemq.apache.org/kahadb 从 ActiveMQ 5.4 开始默认的持久化方式,KahaDB 恢复时间远远小于其前身 AMQ

    88930发布于 2021-03-03
  • 来自专栏吴伟祥

    ActiveMQ 中的消息持久化 原

    默认的采用KahaDBKahaDB是一种可嵌入式的事务性的持久化机制。 KahaDB是从ActiveMQ 5.4开始默认的持久化插件,也是我们项目现在使用的持久化方式。 KahaDb恢复时间远远小于其前身AMQ并且使用更少的数据文件,所以可以完全代替AMQ。 kahaDB的持久化机制同样是基于日志文件,索引和缓存。 配置方式: ? (1)KahaDB主要特性 1、日志形式存储消息; 2、消息索引以B-Tree结构存储,可以快速更新; 3、完全支持JMS事务; 4、支持多种恢复机制; (2)KahaDB的结构 消息存储在基于文件的数据日志中 目前默认的持久化方式仍然是KahaDB,不过LevelDB持久化性能高于KahaDB,可能是以后的趋势。

    1.1K30发布于 2018-08-14
  • 来自专栏杂烩

    ActiveMQ集群部署 转

    wireFormat.maxFrameSize=104857600"/> </transportConnectors> 5)修改Broker-B节点中的持久化方式:      <persistenceAdapter>            <kahaDB directory="/localhost/kahadb"/>         </persistenceAdapter> 6)在Broker-C节点中添加networkConnector节点: <networkConnectors wireFormat.maxFrameSize=104857600"/> </transportConnectors> 8)修改Broker-B节点中的持久化方式:      <persistenceAdapter>            <kahaDB directory="/localhost/kahadb"/>        </persistenceAdapter> 9)分别启动broker-A、broker-B、broker-C,因为是broker-B 先启动,所以“/localhost/kahadb”目录被lock住,broker-C将一直处于挂起状态,当人为停掉broker-B之后,broker-C将获取目录“/localhost/kahadb”的控制权

    80710发布于 2018-08-17
  • 来自专栏小狼的世界

    ActiveMQ 常见集群模式

    usr/local/apache-activemq-5.8.0/conf/activemq.xml - ~/Projects/sh-valley/docker-conf/activemq/kahadb :/usr/local/apache-activemq-5.8.0/data/kahadb networks: - default activemq-B: image: usr/local/apache-activemq-5.8.0/conf/activemq.xml - ~/Projects/sh-valley/docker-conf/activemq/kahadb :/usr/local/apache-activemq-5.8.0/data/kahadb networks: - default 其实两个配置文件是一样的,关键是将 kahadb . activemq-B_1 | INFO | KahaDB is version 4 activemq-B_1 | INFO | Recovering from the journal ...

    85930编辑于 2023-02-16
  • 来自专栏Java学习123

    JMS消息持久化,将ActiveMQ消息持久化到mySql数据库中

    默认提供的是持久化到文件的方式,即activemq.xml文件中的: <persistenceAdapter> <kahaDBdirectory="${activemq.base}/data/<em>kahadb</em> commons-pool-1.6.jar commons-dbcp-1.4.jar 2.2    修改配置文件activemq.xml 将其中的这段配置: <persistenceAdapter> <<em>kahaDB</em> directory="${activemq.base}/data/kahadb"/> </persistenceAdapter> 修改为下面这段内容: <persistenceAdapter>         

    2.1K70发布于 2018-05-16
  • 来自专栏HUC思梦的java专栏

    ActiveMQ+Zookeeper集群配置文档

    第二处修改:先注释掉适配器中的kahadb ? 第三处修改:添加新的leveldb配置如下(三个节点都需要修改):Node1:<persistenceAdapter><! --kahaDB directory="{activemq.data}/kahadb"/ --><replicatedLevelDBdirectory="{activemq.data}/<em>kahadb</em>"/

    1.4K20发布于 2020-09-03
  • 来自专栏同步文章

    activemq学习之消息发送解析与消息存储(二)

    KahaDB存储(默认存储方式) JDBC存储 Memory存储 LevelDB存储 JDBC With ActiveMQ Journal KahaDB存储 KahaDB是目前默认的存储方式,可用于任何场景 KahaDB是一个专门针对消息持久化的解决方案,它对典型的消息使用模式进行了优化。在Kaha中,数据被追加到 data logs中。当不再需要log文件中的数据的时候,log文件会被丢弃。 KahaDB的配置方式 <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter > KahaDB的存储原理 在data/kahadb这个目录下,会生成四个文件 db.data 它是消息的索引文件,本质上是B-Tree(B树),使用B-Tree作为索引指向db-.log里面存储的消息 ,虽然目前默认的持久化方式仍然是KahaDB

    73020编辑于 2022-10-25
  • 来自专栏IT米粉

    activeMQ 填坑记

    Mysql 持久化 现在大家使用MQ,基本都是会把数据进行持久化,MQ默认存储持久化数据使用kahaDB,但是鉴于大家对mysql比较熟悉,很多人会选择mysql进行数据的持久化,因为mysql查看数据还是比较方便的 -- 下面是默认的kahaDB方式,注释掉 --> <! -- <kahaDB directory="${activemq.data}/kahadb"/> --> </persistenceAdapter> 这里的配置有几个地方大家需要关注下:

    1.4K20发布于 2018-10-08
  • 来自专栏咸鱼不闲

    五分钟快速了解ActiveMQ,案例简单且详细!

    localhost:61616 spring.activemq.user=admin spring.activemq.password=123456 消息持久化 ActiveMQ的持久化机制包含JDBC,KahaDB (默认)、LevelDB 默认保存的消息在\data\kahadb目录下;下面方法修改为用MySQL(JDBC)保存, 生产者发送消息存储到MySQL数据库,消费者消费后消息从数据库消失。 1.修改/conf/activemq.xml 将: <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb

    1.3K40发布于 2019-07-02
  • 来自专栏菩提树下的杨过

    ActiveMQ笔记(2):基于ZooKeeper的HA方案

    --<kahaDB directory="${activemq.data}/kahadb"/>--> 5 <replicatedLevelDB 6

    67460发布于 2018-01-18
  • 来自专栏架构专题

    ActiveMQ架构设计与最佳实践,需要一万字

    我们通常使用kahaDB作为存储引擎,即使用日志文件方式;kahaDB的存储效率非常的高,TPS可以高达2W左右,是一种高效的、数据恢复能力强的存储机制。 但是JDBC存储机制,性能实在是太低,与kahaDB这种基于日志存储层相比,性能相差近10倍左右。 Oh my god。不过在一些低并发,纯粹解耦的场景是可以的。 这种简化版的架构模式,通过增加机器的数量、细分消息的分布,来降低数据影响故障影响的规模,因为其基于kahaDB本地日志存储,所以性能很高。 4.1、共享JDBC测试结果 生产端配置。 4.2、基于非共享文件存储的测试结果 测试单个ActiveMQ,基于kahaDB存储,kahaDB分为两种数据刷盘模式: 1)逐条消息刷盘 2)每隔一秒刷盘 <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb" journalDiskSyncStrategy="periodic" journalDiskSyncInterval

    1.1K20发布于 2020-04-09
  • 来自专栏JAVA杂谈

    深入了解ActiveMQ!

    我们重点介绍一下KahaDB和JDBC存储方式。 KahaDB存储 KahaDB是默认的持久化策略,所有消息顺序添加到一个日志文件中,同时另外有一个索引文件记录指向这些日志的存储地址,还有一个事务日志用于消息回复操作。 kahadb文件结构 新的数据以APPEND的方式追加到日志文件末尾。属于顺序写入,因此消息存储是比较 快的。 KahaDB有如下几个特性: 日志形式存储消息; 消息索引以 B-Tree 结构存储,可以快速更新; 完全支持 JMS 事务; 支持多种恢复机制kahadb 可以限制每个数据文件的大小。 配置方式如下: <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter>

    1.4K20发布于 2020-09-08
  • 来自专栏菩提树下的杨过

    ActiveMQ笔记(2):基于ZooKeeper的HA方案

    --<kahaDB directory="${activemq.data}/kahadb"/>--> 5 <replicatedLevelDB 6

    866100发布于 2018-01-18
  • 来自专栏大大的微笑

    ActiveMQ几个重要的配置文件

    The default persistence mechanism is the KahaDB store (identified by the kahaDB tag). --<kahaDB directory="${activemq.data}/kahadb" journalMaxFileLength="32mb" indexWriteBatchSize="500"/ 在使用后续介绍的KahaDB方案或者LevelDB方案进行PERSISTENT Message持久化存储时,这个storeUsage属性都会起作用;但是如果使用数据库存储方案,这个属性就不会起作用了。 这个文章讲述的比较清楚,关于kahaDB,levelDB : http://www.coin163.com/it/996551150045034507/ActiveMQ-JMS-KahaDBLevelDB

    4.2K90发布于 2018-02-27
  • 来自专栏Java 学习

    MQ 系列之 ActiveMQ 搭建 Zookeeper + Replicated LevelDB 集群

    这些文件存储在单独的 non-replicated KahaDB 中。 这里使用一台虚拟机创建不同的目录演示 1.2.2 修改配置文件   修改 broker 标签中的 brokerName 属性,使得集群中的 ActiveMQ brokerName 保持一致,然后注掉默认的 KahaDB

    1.4K20发布于 2020-12-16
  • 来自专栏Java工程师日常干货

    ActiveMQ从入门到精通(二)消息的顺序消费JMS Selectors消息的同步 AND 异步 接受MessageP2P or Pub/Sub持久化订阅持久化消息到MySQL与Spring整合 J

    ---- 持久化消息到MySQL 在前文中已经提及默认情况下,ActiveMQ是开启持久化消息机制的,并且是持久化到kahadb的,但是"很可惜"kahadb对我们不是很友好的可视化,其实ActiveMQ 注释kahadb,启用持久化到MySQL配置 实际中,我们会持久化到哪里呢? 一般情况下,比如到kahadb,比如到leveldb,因为这些数据库的性能要较MySQL更高些,我们并不关心消息的“可视化”,更加关心的是消息在持久化的同时更加高效!

    2.9K30发布于 2018-08-21
领券