2、KahaDB
KahaDB是基于文件的本地数据库储存形式,虽然没有AMQ的速度快,但是它具有强扩展性,恢复的时间比AMQ短,从5.4版本之后KahaDB做为默认的持久化方式。默认配置如下:
KahaDB的属性:
property name | default value | Comments |
directory | activemq-data | 消息文件和日志的存储目录 |
indexWriteBatchSize | 1000 | 一批索引的大小,当要更新的索引量到达这个值时,更新到消息文件中 |
indexCacheSize | 10000 | 内存中,索引的页大小 |
enableIndexWriteAsync | false | 索引是否异步写到消息文件中 |
journalMaxFileLength | 32mb | 一个消息文件的大小 |
enableJournalDiskSyncs | true | 是否讲非事务的消息同步写入到磁盘 |
cleanupInterval | 30000 | 清除操作周期,单位ms |
checkpointInterval | 5000 | 索引写入到消息文件的周期,单位ms |
ignoreMissingJournalfiles | false | 忽略丢失的消息文件,false,当丢失了消息文件,启动异常 |
checkForCorruptJournalFiles | false | 检查消息文件是否损坏,true,检查发现损坏会尝试修复 |
checksumJournalFiles | false | 产生一个checksum,以便能够检测journal文件是否损坏。 |
5.4版本之后有效的属性: | ||
archiveDataLogs | false | 当为true时,归档的消息文件被移到directoryArchive,而不是直接删除 |
directoryArchive | null | 存储被归档的消息文件目录 |
databaseLockedWaitDelay | 10000 | 在使用负载时,等待获得文件锁的延迟时间,单位ms |
maxAsyncJobs | 10000 | 同个生产者产生等待写入的异步消息最大量 |
concurrentStoreAndDispatchTopics | false | 当写入消息的时候,是否转发主题消息 |
concurrentStoreAndDispatchQueues | true | 当写入消息的时候,是否转发队列消息 |
5.6版本之后有效的属性: | ||
archiveCorruptedIndex | false | 是否归档错误的索引 |
从5.6版本之后,有可能发布通过多个kahadb持久适配器来实现分布式目标队列存储。什么时候用呢?如果有一个快速的生产者和消费者,当某一个 时刻生产者发生了不规范的消费,那么有可能产生一条消息被存储在两个消息文件中,同时,有些目标队列是危险的并且要求访问磁盘。在这种情况下,你应该用通 配符来使用mKahaDB。如果目标队列是分布的,事务是可以跨越多个消息文件的。
每个KahaDB的实例都可以配置单独的适配器,如果没有目标队列提交给filteredKahaDB,那么意味着对所有的队列有效。如果一个队列没有对应的适配器,那么将会抛出一个异常。配置如下:
如果filteredKahaDB的perDestination属性设置为true,那么匹配的目标队列将会得到自己对应的KahaDB实例。配置如下:
相关推荐
Apache ActiveMQ 是一款非常流行的开源消息中间件,它支持 Java 消息服务 (JMS) 标准,并提供了多种高级功能,例如持久化、集群、故障转移等。ActiveMQ 能够帮助开发者实现解耦、可靠的消息传输以及高性能的应用程序...
- **持久化(Persistence)**:ActiveMQ支持消息持久化,即使在服务器重启后也能确保消息不会丢失。 - **事务(Transactions)**:允许用户在一个操作中发送多条消息,保证所有消息要么全部成功,要么全部失败。 ...
- **持久化**:ActiveMQ支持将消息持久化到磁盘,即使服务器重启,消息也不会丢失,保证了消息的可靠性。 - **高可用性**:通过网络集群和故障转移机制,ActiveMQ可以实现零停机时间,确保服务始终可用。 - *...
2. **持久性消息**:这类消息被标记为`PERSISTENT`,表示它们将使用暂存后再转送的机制进行传递。如果一个JMS服务暂时离线,那么这些消息将被保存下来,直到服务恢复在线状态后才会被重新发送。 - **优点**:确保了...
#### 二、ActiveMQ消息持久化 **1. 概述** 消息持久化是指将消息存储在非易失性存储介质上,以便在Broker重启时仍然能够恢复消息。ActiveMQ支持多种消息持久化机制,包括AMQ、KahaDB和JDBC。 **2. AMQ** - **...
**ActiveMQ笔记** ActiveMQ是Apache软件基金会的一个开源项目,它是Java消息服务(JMS)的一个实现,专门用于处理消息传递。作为一个中间件,ActiveMQ允许应用程序之间通过异步通信来解耦它们的功能,提高系统的可...
- **可靠性**:消息队列通常支持持久化存储,确保消息不会丢失。 - **扩展性**:可以根据需要轻松地添加更多的消费者来处理消息。 ![目标](C:\Users\Microsoft\AppData\Roaming\Typora\typora-user-images\image...
ActiveMQ支持多种优化策略,如持久化、负载均衡、事务和消息确认。同时,它还提供了安全特性,如SSL/TLS加密、用户权限控制和认证机制。 总结,ActiveMQ是企业级消息传递的可靠工具,其易用性、灵活性和丰富的特性...
在实际应用中,你可能需要根据业务需求配置更多选项,比如添加持久化存储、设置消息策略、安全认证等。通过调整`BrokerService`的各种属性和方法,可以定制化你的嵌入式Broker以满足特定需求。 总之,启动ActiveMQ...
**ActiveMQ笔记** ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它是Java Message Service (JMS) 的实现,广泛应用于分布式系统中的异步通信。本笔记将详细探讨ActiveMQ的核心概念、工作原理以及实际应用...
ActiveMQ 的主要特性包括支持多种协议(如 OpenWire、AMQP、STOMP、MQTT、REST),持久性消息存储机制,以及高可用性和负载均衡能力等。 ##### 1.2 下载与安装 根据提供的部分文件内容,我们可以了解到 ActiveMQ ...
ActiveMQ支持发布/订阅、点对点等多种消息模式,以及事务处理、消息持久化等功能,确保了消息的可靠传输。 **二、SpringBoot整合ActiveMQ** 1. **依赖引入** 在SpringBoot项目中,我们需要添加ActiveMQ的依赖。在...
此外,通过设置消息属性,还可以控制消息是否持久化存储,即使服务器重启也能保证不丢失。 6. **异常处理与回退策略** 在Spring中,可以通过定义错误处理策略来应对消息处理失败的情况,例如重新发送消息、记录...
5. 灵活性:允许配置各种消息持久化策略、网络拓扑和负载均衡策略。 6. 丰富的管理工具:提供Web控制台和命令行工具,方便监控和管理消息队列。 总结 ActiveMQ作为JMS的一个实现,提供了一种标准化的消息传递解决...
"ActiveMQ in Action"是一本权威的ActiveMQ专著,深入探讨了ActiveMQ的高级特性,如集群、持久化、网络连接等,适合已经有一定基础并希望深入了解的开发者。 通过这些资料,用户可以系统性地学习和掌握ActiveMQ,...
2. **标准支持**:完全支持JMS 1.1和J2EE 1.4规范,包括持久化、XA消息和事务管理等功能。 3. **Spring集成**:ActiveMQ易于与使用Spring框架的应用集成,并且支持Spring 2.0的特性。 4. **持久化机制**:支持通过...
ActiveMQ使用消息中间件技术,可以有效地在不同的系统之间异步传输消息,解决系统解耦、削峰、异步处理等问题。 首先,ActiveMQ能够实现系统的解耦。在传统的系统设计中,一个系统要调用另一个系统,通常是通过同步...
2. 可靠传输:消息在传输过程中得到持久化存储,确保即使接收方暂时不可用,消息也不会丢失。 3. 事务支持:允许将多个消息操作组合成一个原子事务,保证数据一致性。 4. 消息过滤:可以通过消息选择器控制哪些消息...
ActiveMQ支持高可用、集群、故障转移和持久化消息等特性,可以用于负载均衡和提高系统可靠性。它的设计目标是为了解决分布式系统中的消息传递和集成问题,同时也支持通过多种协议进行消息通信,如TCP/IP、SSL、NIO、...