ActiveMq持久化相关配置:/usr/local/apache-activemq-5.11.1/conf/activemq.xml
官方默认的持久化为Kahadb:
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"
</persistenceAdapter>
可以稍作调优:
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"
indexWriteBatchSize="1000"
journalMaxFileLength="32mb"
enableIndexWriteAsync="true"
enableJournalDiskSyncs="false"/>
</persistenceAdapter>
实例展示使用mysql持久化:
修改persistenceAdapter节点:
<persistenceAdapter>
<jdbcPersistenceAdapter directory="${activemq.data}/mysqldb" dataSource="#ds-mysql"/>
</persistenceAdapter>
在<import resource="jetty.xml"/>节点前面增加mysql的相关配置信息
<bean id="ds-mysql" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.147.131:3306/activemq?relaxAutoCommit=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
添加依赖的dbcp和mysql驱动包到lib
创建activemq数据库重启Activemq,可以看到在activemq库中增加了三个表
发送queue类型消息:
消息被消费了之后持久化的记录会删除.
问题: 测试过程中持久化感觉性能不好,而且消息消费容易锁住.希望得到好的意见和建议 共同学习.
相关推荐
Apache ActiveMQ是业界广泛使用的开源消息中间件,它支持多种协议,如AMQP、STOMP、MQTT等,且提供了消息持久化功能,确保在系统故障后仍能恢复消息,保持数据完整性。本主题主要围绕“activemq消息持久化所需Jar包...
压缩包中的`SenderPersistent.java`和`ReceiverPersistent.java`可能是示例代码,分别展示了如何创建一个发送持久化消息的生产者和接收持久化消息的消费者。在这些代码中,可以看到如何使用ActiveMQ的API来设置消息...
标题中的"activemq持久化jdbc所需jar包.zip"指的是Apache ActiveMQ消息中间件在使用JDBC(Java Database Connectivity)进行消息持久化时所需的库文件集合。ActiveMQ是一款开源、高性能、跨语言的企业级消息代理,它...
1. **配置持久化策略**:在ActiveMQ的配置文件中,需要开启消息持久化。这通常涉及修改`activemq.xml`,设置`<destinationPolicy>`元素中的`<policyEntry>`,将`persistent`属性设为`true`,以确保消息在存储和传输...
spring +activemq topic消息持久化订阅实例,整个项目中有activemq和spring的整合的所有实例,topic的持久化配置是在ApplicationContext3C、ApplicationContext3C2以及ApplicationContext3P三个中,消息生产者:...
在生产环境中,为了保证消息的可靠性,通常会使用持久化存储来保存消息,即使在服务重启后也能恢复数据。本主题主要探讨如何将ActiveMQ配置为使用MySQL 8作为其持久化存储方式,以及在这个过程中所需的Jar包。 1. *...
ActiveMQ 持久化是指将消息队列持久化到数据库或文件中,以便在断电或崩溃后恢复消息队列。可以使用 Apache ActiveMQ 的持久化机制,例如使用 KahaDB 或 AMQP 等。 集群环境 ActiveMQ 集群环境是指多个 ActiveMQ ...
4. **持久化级别**:ActiveMQ 允许用户选择不同的消息持久化级别,例如,可以选择仅持久化消息头,或者同时持久化消息头和正文。这可以根据性能和数据完整性需求进行调整。 5. **事务管理**:在 ActiveMQ 中,可以...
在本示例中,我们将深入探讨如何将Spring框架与ActiveMQ集成,以便实现消息队列(Queue)和主题(Topic)的功能,并确保消息的持久化。ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它支持多种消息协议,如...
在ActiveMQ中,持久化是确保消息即使在服务器崩溃或重启后仍能被正确处理的关键特性。 JDBC(Java Database Connectivity)是Java编程语言中用于与数据库交互的一套标准API,它允许开发者通过统一的方式访问各种...
2. **订阅持久化**:除了消息的持久化,ActiveMQ 还支持订阅的持久化。这意味着即使消费者在消息发送后断开连接,当其重新连接时,仍能接收到之前错过的所有消息。这种特性通常被称为“Durable Subscription”。 要...
ActiveMQ 队列消息过期时间设置和自动清除解决方案 ActiveMQ 是一个开源的消息队列系统,用于实现分布式系统之间的异步通信。在使用 ActiveMQ 时,消息过期时间设置和自动清除是一个非常重要的问题。本文将介绍 ...
标题中的“activemq-5.15.15 JDBC持久化mysql8.0+的activemq.xml”指的是Apache ActiveMQ的一个特定版本(5.15.15)配置文件,该配置文件用于实现消息队列的数据持久化,通过JDBC连接MySQL 8.0以上的版本。ActiveMQ...
总的来说,`activemq-store-journal-1.2.jar` 是ActiveMQ消息持久化的关键组件,通过高效的日志记录和恢复机制,保障了消息系统的稳定性和可靠性。在实际开发中,理解并正确使用这个组件,对于构建高效、健壮的消息...
ActiveMQ的存储机制包括非持久化消息和持久化消息两种方式。非持久化消息存储在内存中,而持久化消息则存储在磁盘文件中。当内存中的非持久化消息过多时,ActiveMQ会将这些消息写入临时文件来腾出内存。如果磁盘空间...
在提供的Java代码实例中,我们看到如何创建一个连接到ActiveMQ服务器的生产者,并发送持久化消息到一个名为"toov5_queue"的队列。`Session.AUTO_ACKNOWLEDGE`设置意味着消费者在接收到消息后会自动确认,无需显式...
通过理解服务器宕机时的数据存储策略,处理丢消息的策略,优化持久化消息的发送,调整prefetch机制以确保消息公平分配,以及利用死信队列来处理异常情况,我们可以更好地利用ActiveMQ构建健壮的分布式系统。
当内存中的非持久化消息堆积到一定程度时,ActiveMQ会将它们写入临时文件,以腾出内存空间。如果文件大小达到配置的最大限制,消息生产者会阻塞,但消费者仍能连接并消费消息。在持久化消息达到文件大小限制时,生产...
默认情况下,ActiveMQ中的非持久化消息采用异步发送,而持久化消息则采用同步发送方式,这可能导致在某些硬件环境下发送速度缓慢。为了解决这一问题,可以通过以下方法提高效率: - 在发送持久化消息时启用事务模式...